You see: there's no garantee that DBI won't reuse the same hashref over and over again. That would mean that all, at least some, of the stored values in the final hash are the same reference. Quoting from `perldoc DBI` on fetchrow_hashref, $DBI::VERSION==1.15 (I haven't bothered to upgrade in a long time):while (my $tmp_href = $sth->fetchrow_hashref) { $ct++; $results{$ct} = $tmp_href; }
Currently, a new hash reference is returned for each row. *This will change* in the future to return the same hash ref each time, so don't rely on the current behaviour.
Therefore, I propose to anonymise those records:
For the rest: doing %$href = %result; seems to work for me.while (my $tmp_href = $sth->fetchrow_hashref) { $ct++; $results{$ct} = { %$tmp_href }; }
In reply to Re: Preserving hash structure after subroutine call
by bart
in thread Preserving hash structure after subroutine call
by Anonymous Monk
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |