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


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

Ugly, but short:
$_ and $a->{b} = $_ for $b;

-- Randal L. Schwartz, Perl hacker
Be sure to read my standard disclaimer if this is a reply.

Replies are listed 'Best First'.
Re^2: Shortcut operator for $a->{'b'}=$b if $b;
by chester (Hermit) on Sep 20, 2005 at 16:43 UTC
    What's the for doing, there? Doesn't this work?

    $b and $a->{'b'} = $b

    edit: Doesn't solve the problem fully.

        Ah, I see. My mistake.

      foreach loops sets $_ to refer to the current value in the list which is being iterated. In this case, the list consists solely of $b.

      Your expression is equivalent, but it's not an acceptable answer since the question was about removing the need for using $b twice.