http://www.perlmonks.org?node_id=951258


in reply to Pushing Array ref to array

The problem is that each entry in @result is a reference to @row, but because @row is declared at the top of the code, you change the contents of @row each time through. Instead, you need to create a new variable each time through the loop.

This is quite easy:

while (my @row = $sth->fetchrow_array()) { ... }

And you should be able to delete the my @row; line at the top of the code.

Here's something that may help you understand better: Lexical scoping like a fox.


"There is no shame in being self-taught, only in not trying to learn in the first place." -- Atrus, Myst: The Book of D'ni.