1
2
my $SqlTools = "SELECT `value` FROM `Tools` WHERE `property`=?";
my $SqlSthTools = $dbh->prepare($SqlTools);
1
2
3
4
5
6
sub closeDatabase {
foreach my $sth (@toClose) {
$sth->finish();
}
$dbh->disconnect;
}
1
2
3
4
5
6
7
8
9
10
11
my @toClose = ();
push @toClose, "SqlSthTools";
sub closeDatabase {
foreach my $sth (@toClose) {
my $cmd = '$' . $sth . '->finish()';
eval $cmd;
}
$dbh->disconnect;
}
1 2 3 4 5 6
sub closeDatabase { foreach my $sth (@toClose) { ${$sth}->finish(); } $dbh->disconnect; }
1 2 3 4 5 6 7 8 9 10
my @toClose = (); push @toClose, $SqlSthTools; sub closeDatabase { foreach my $sth (@toClose) { $sth->finish(); } $dbh->disconnect; }
1 2 3 4
foreach my $sth(@statements){ # $sth ist eine Referenz auf eine Referenz $$sth->finish; # beachte die 2 Dollarzeichen, Dereferenzierung }
1 2 3 4 5 6 7
sub do_this { my ($dbh) = @_; my $sth = $dbh->prepare(...); $sth->execute(...); # fetchrow... # ende des blocks. hier wird $sth ungültig und automatisch finish aufgerufen }