in reply to naming anonymous subroutines inner variables
And if you don't need to have references to hashrefs in the arrayref, then the execute() and the while loop can be replaced with:for ( keys %{$self->{SQL}} ) { my $name = $_; my $dbh = $self->{DBO}; my $sth = $dbh->prepare($self->{SQL}{$name}; $self->{STH}{$name} = sub { my @res; $sth->execute(@_); while (my $dbrow = $sth->fetchrow_hashref()) { # Not sure why you're making a reference to a hashref here push @res, \$dbrow; } return \@res; }; }
Or even (only $sth needs to be a closure):my $res = $dbh->selectall_arrayref($sth, {Slice => {}}, @_); return $res;
return $sth->{Database}->selectall_arrayref($sth, {Slice => {}}, @_);
|
|---|