Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: &&= vivify keys?

by Eliya (Vicar)
on Apr 18, 2012 at 09:06 UTC ( #965678=note: print w/replies, xml ) Need Help??


in reply to &&= vivify keys?

$x{a} &&= 1; is effectively the same as

$x{a} = $x{a} && 1;

which is in this case

$x{a} = undef && 1;

which is

$x{a} = undef;

Replies are listed 'Best First'.
Re^2: &&= vivify keys?
by oha (Friar) on Apr 18, 2012 at 09:10 UTC
    so true!

    not sure why, but i was expecting it to be the same as

    $x{a} && $x{a} = 1;
    thank you!

      Actually, you're closer to the truth than Eliya is. The assignment is indeed conditional.

      Aside from the syntax error from missing parens, the problems both yours and Eliya share are:

      • 1 is actually evaluated before anything else,
      • $x{a} is only evaluated once, and
      • $x{a} is (only) evaluated in lvalue context.

      See Re^2: &&= vivify keys?.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (4)
As of 2016-12-07 12:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    On a regular basis, I'm most likely to spy upon:













    Results (126 votes). Check out past polls.