http://www.perlmonks.org?node_id=493596


in reply to Re: Shortcut operator for $a->{'b'}=$b if $b;
in thread Shortcut operator for $a->{'b'}=$b if $b;

It doesn’t “abort” the assignment – the logical OR is evaluated first, then possibly the last, and if that is evaluated, it prevents the assignment from evaluating at all. And thus it works.

Makeshifts last the longest.

Replies are listed 'Best First'.
Re^3: Shortcut operator for $a->{'b'}=$b if $b;
by CountZero (Bishop) on Sep 20, 2005 at 21:15 UTC
    And thereby logical false values do not get assigned, which is not as per the specs.

    CountZero

    "If you have four groups working on a compiler, you'll get a 4-pass compiler." - Conway's Law

      You should re-read the OP's post. It says "The point is to have no key 'b' exist if $b is false."

      Caution: Contents may have been coded under pressure.