The undef value is subtly different from using an undefined variable, so that may be causing the problem.
tst($foo{undef}); # doesn't warn from tstThis uses the undef value as a key into the %foo hash; the key presumably doesn't exist so Perl returns undef. This is working as I would expect.
tst($foo{$undef}); # warns from tstThis looks up the value of $undef, which presumably isn't defined, so Perl should flag an error at that statement, not inside tst. If that is the case, then it, too, is working as I would expect.
In reply to Re^4: Unexpected warning
by samwyse
in thread Unexpected warning
by salva
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |