Surprisingly Perl didn't tell me which variable was causing the trouble.
A closer investigation revealed that accessing hash entries via a dereference omitted the details.
Here a test in 5.22
$ perl -wE 'my $x={};my %h; say "plain $h{new} deref $x->{new}"' Use of uninitialized value $h{"new"} in concatenation (.) or string at + -e line 1. Use of uninitialized value in concatenation (.) or string at -e line 1 +. plain deref
is it a bug or is there a reason why Perl can't localize $x?
FWIW I tested 5.8.9 and back then no hints at all where given:
$ perlbrew use perl-5.8.9 $ perl -we 'my $x={};my %h; print "plain $h{new} deref $x->{new}"' Use of uninitialized value in concatenation (.) or string at -e line 1 +. Use of uninitialized value in concatenation (.) or string at -e line 1 +.
Cheers Rolf
(addicted to the Perl Programming Language and ☆☆☆☆ :)
Je suis Charlie!
In reply to BUG in warnings uninitialized for derefed hashes? by LanX
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |