Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery

Re^3: Unexpected warning

by salva (Abbot)
on Nov 18, 2013 at 15:08 UTC ( #1063114=note: print w/replies, xml ) Need Help??

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

I can reproduce it myself too now:
tst(undef); # doesn't warn from tst tst($foo{undef}); # doesn't warn from tst tst($foo{$undef}); # warns from tst
I would say this is a bug in perl, or I am missing something?

Replies are listed 'Best First'.
Re^4: Unexpected warning
by samwyse (Scribe) on Nov 18, 2013 at 16:14 UTC

    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.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1063114]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (4)
As of 2018-05-23 08:09 GMT
Find Nodes?
    Voting Booth?