Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: Preserving hash structure after subroutine call

by bart (Canon)
on May 13, 2003 at 22:13 UTC ( [id://257917]=note: print w/replies, xml ) Need Help??


in reply to Preserving hash structure after subroutine call

It seems to me the only place that this can go wrong is in this section, copied from your code:
while (my $tmp_href = $sth->fetchrow_hashref) { $ct++; $results{$ct} = $tmp_href; }
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):
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:

while (my $tmp_href = $sth->fetchrow_hashref) { $ct++; $results{$ct} = { %$tmp_href }; }
For the rest: doing %$href = %result; seems to work for me.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://257917]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others avoiding work at the Monastery: (3)
As of 2024-04-25 22:04 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found