# New Ticket Created by  "brian d foy" 
# Please include the string:  [perl #132511]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=132511 >


I previously asked about this unexpected Z behavior on Stackoverflow
( https://stackoverflow.com/q/45001820/2766176 ).

I expected this to change several hash keys at once. It changes no keys:

    my $hash = %(
        wallet   => 100,
        gave     =>   0,
        received =>   0,
        );

    for ^1 { $hash<wallet gave> Z+= <-1 1> }

    dd $hash;

I get:

    Hash $hash = ${:gave(0), :received(0), :wallet(100)}

If I change that to add another statement it works:

    for ^1 { $hash<wallet gave> Z+= <-1 1>; True }

It also works if I take out the binary assignment:

    for ^1 { $hash<wallet gave> = $hash<wallet gave> Z+ <-1 1> }

Reply via email to