http://qs321.pair.com?node_id=218439


in reply to Having to specify $_

You'd think (if you think like me) that $_ is assigned the value of $sth->fetchrow_hashref everytime through the loop.

I'd expect that $_ would be assigned during a for or foreach loop, but not during a while loop. Try

push @results, $_ foreach ($sth->fetchrow_hashref());


Update: It's possible to be mislead by   while ( <FILE> ) { ... Here, $_ does get set. But this is actually due to input operator behavior, as covered in the "I/O Operators" section in perlop.

Props to rob_au for prodding this clarification.