in reply to Re: Substr ref anomoly (revisited)
in thread Substr ref anomoly (revisited)

I noticed that under 5.6.1 when doing some DBI work. It took me forever to realize that every element in the @data array was actually being set to the same address.

while( my $row = $sth->fetchrow_hashref() ) { push @data, $row; }

I thought it had something funky to do with the $row ref being outside of the while loop's curly-brace scope (is this a closure?). I solved the problem thusly:

while( my $ref = $sth->fetchrow_hashref() ) { my $row = $ref; push @data, $row; }

I never saw a problem with row ordering. And, from my logic, this really shouldn't work. It reads (to me) that I'm copying the $ref reference into the $row variable, instead of creating a new reference. But, for whatever reason, the array started working the way I figured it should.

I had chalked this up as my not completely understanding the logic and scoping of references.