I was recently bitten by a bug in my code, where I accidentally wrote
$_{foo}; #$_ containts a hashref.
I had meant to use $$_{foo}, but was suprised that despite using strict and warnings, perl had seemingly autodeclared %_.
My original code read something like this, to show it isn't completely contrived.
use strict;
use warnings;
use DBI;
use Data::Dumper;
#connect and execute stored procedure
#...
push @results, $_{user_id}
while ($_ = $sth->fetchrow_hashref());
print Dumper(\@results);
Which prints
$VAR1 = [
undef,
undef,
undef
];
I soon spotted the problem, caused by my ever shoddy typing. However a trip to perlvar failed to enlighten. Further investigation revealed that %_ does indeed exist, but is perhaps unused. '
What is %_' was asked a little over 7 years, but didn't elicit a definitive answer.
What is %_ for? If there is no current use, would anyone care to suggest what %_ might be used for?