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


in reply to Re^3: Unexpected warning
in thread Unexpected warning

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 tst

This 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 tst

This 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.