# sub in my controller
sub add_subdomain {
my $self = $_[0];
my $list = MyDatabaseModule::Domains->new->list_add_subdomain;
warn $self->dumper ($list);
$self->stash (httpd_servers => $list->{httpd_servers});
$self->render;
}
# sub in model (MyDatabaseModule::Domains)
sub list_add_subdomain {
my $self = $_[0];
my ($sth, @http_servers);
$sth = $self->dbh->prepare ('SELECT id, name, ip FROM servers WHERE httpd = 1 ORDER BY name ASC');
$sth->execute;
while (my $row = $sth->fetchrow_hashref) {
push @httpd_servers, $row; }
httpd_servers => [ @httpd_servers ],
};
}
## dump on first request
#{
# "httpd_servers" => [
# {
# "id" => 4,
# "ip" => "127.0.0.1",
# "name" => "onur"
# }
# ]
#}
#
## dump on second request
#{
# "httpd_servers" => [
# {
# "id" => 4,
# "ip" => "127.0.0.1",
# "name" => "onur"
# },
# {
# "id" => 4,
# "ip" => "127.0.0.1",
# "name" => "onur"
# }
# ]
#}
#
## dump on third request
#{
# "httpd_servers" => [
# {
# "id" => 4,
# "ip" => "127.0.0.1",
# "name" => "onur"
# },
# {
# "id" => 4,
# "ip" => "127.0.0.1",
# "name" => "onur"
# },
# {
# "id" => 4,
# "ip" => "127.0.0.1",
# "name" => "onur"
# }
# ]
#}
#
# ...
CiMgc3ViIGluIG15IGNvbnRyb2xsZXIKc3ViIGFkZF9zdWJkb21haW4gewogIG15ICRzZWxmID0gJF9bMF07CgogIG15ICRsaXN0ID0gTXlEYXRhYmFzZU1vZHVsZTo6RG9tYWlucy0+bmV3LT5saXN0X2FkZF9zdWJkb21haW47CgogIHdhcm4gJHNlbGYtPmR1bXBlciAoJGxpc3QpOwoKICAkc2VsZi0+c3Rhc2ggKGh0dHBkX3NlcnZlcnMgPT4gJGxpc3QtPntodHRwZF9zZXJ2ZXJzfSk7CgogICRzZWxmLT5yZW5kZXI7Cn0KCiMgc3ViIGluIG1vZGVsIChNeURhdGFiYXNlTW9kdWxlOjpEb21haW5zKQpzdWIgbGlzdF9hZGRfc3ViZG9tYWluIHsKICBteSAkc2VsZiA9ICRfWzBdOwoKICBteSAoJHN0aCwgQGh0dHBfc2VydmVycyk7CgogICRzdGggPSAkc2VsZi0+ZGJoLT5wcmVwYXJlICgnU0VMRUNUIGlkLCBuYW1lLCBpcCBGUk9NIHNlcnZlcnMgV0hFUkUgaHR0cGQgPSAxIE9SREVSIEJZIG5hbWUgQVNDJyk7CiAgJHN0aC0+ZXhlY3V0ZTsKCiAgd2hpbGUgKG15ICRyb3cgPSAkc3RoLT5mZXRjaHJvd19oYXNocmVmKSB7CiAgICBwdXNoIEBodHRwZF9zZXJ2ZXJzLCAkcm93OwogIH0KCiAgcmV0dXJuIHsKICAgIGh0dHBkX3NlcnZlcnMgPT4gWyBAaHR0cGRfc2VydmVycyBdLAogIH07Cgp9CgoKIyMgZHVtcCBvbiBmaXJzdCByZXF1ZXN0CiN7CiMgICJodHRwZF9zZXJ2ZXJzIiA9PiBbCiMgICAgewojICAgICAgImlkIiA9PiA0LAojICAgICAgImlwIiA9PiAiMTI3LjAuMC4xIiwKIyAgICAgICJuYW1lIiA9PiAib251ciIKIyAgICB9CiMgIF0KI30KIwojIyBkdW1wIG9uIHNlY29uZCByZXF1ZXN0CiN7CiMgICJodHRwZF9zZXJ2ZXJzIiA9PiBbCiMgICAgewojICAgICAgImlkIiA9PiA0LAojICAgICAgImlwIiA9PiAiMTI3LjAuMC4xIiwKIyAgICAgICJuYW1lIiA9PiAib251ciIKIyAgICB9LAojICAgIHsKIyAgICAgICJpZCIgPT4gNCwKIyAgICAgICJpcCIgPT4gIjEyNy4wLjAuMSIsCiMgICAgICAibmFtZSIgPT4gIm9udXIiCiMgICAgfQojICBdCiN9CiMKIyMgZHVtcCBvbiB0aGlyZCByZXF1ZXN0CiN7CiMgICJodHRwZF9zZXJ2ZXJzIiA9PiBbCiMgICAgewojICAgICAgImlkIiA9PiA0LAojICAgICAgImlwIiA9PiAiMTI3LjAuMC4xIiwKIyAgICAgICJuYW1lIiA9PiAib251ciIKIyAgICB9LAojICAgIHsKIyAgICAgICJpZCIgPT4gNCwKIyAgICAgICJpcCIgPT4gIjEyNy4wLjAuMSIsCiMgICAgICAibmFtZSIgPT4gIm9udXIiCiMgICAgfSwKIyAgICB7CiMgICAgICAiaWQiID0+IDQsCiMgICAgICAiaXAiID0+ICIxMjcuMC4wLjEiLAojICAgICAgIm5hbWUiID0+ICJvbnVyIgojICAgIH0KIyAgXQojfQojCiMgLi4uCgo=