in reply to Perl Warnings...
You could do
my ($query, $sth, $rv); $query = ...; $sth = ...; $rv = ...; ... $query = ...; $sth = ...; $rv = ...; ...
I did that in a .t file recently. The complexity of the alternative was immense.
Of course, in your specific case, you could write
my $first_result = $dbh->selectrow_hashref( "SELECT something FROM somewhere" ); my $second_result = $dbh->selectrow_hashref( "SELECT somethingelse FROM somewhereelse" );
what is actually happening in memory
Two different variables are created, as if they had different names.
$ perl -MO=Concise -e'my $x; my $x; my $y;' 2>&1 | grep padsv 3 <0> padsv[$x:1,4] vM/LVINTRO ->4 5 <0> padsv[$x:2,4] vM/LVINTRO ->6 7 <0> padsv[$y:3,4] vM/LVINTRO ->8
|
|---|