Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: Why does the first $c evaluate to the incremented value in [$c, $c += $_] ?

by hazylife (Monk)
on Mar 04, 2014 at 20:58 UTC ( [id://1076957]=note: print w/replies, xml ) Need Help??


in reply to Why does the first $c evaluate to the incremented value in [$c, $c += $_] ?

Very strange indeed. And it doesn't even have to be a state variable, i.e.

my $c = 0; my @partitions = map { [$c, $c += $_] } @widths;

gives the same result.

Whereas [$c+0, $c += $_] produces

[0, 2] [2, 8] [8, 13] [13, 20]
and so does [my $tmp = $c, $c += $_]

Replies are listed 'Best First'.
Re^2: Why does the first $c evaluate to the incremented value in [$c, $c += $_] ?
by derby (Abbot) on Mar 04, 2014 at 21:23 UTC

    Wild guess here but since the anonymous array is on the right side of a list operator, then the comma has really low precedence -- lower than assignment. By adding the +0, you give both terms equal precedence so it goes back to leftward precedence? Well ... that's my guess.

    -derby

    update: what Eily says makes better sense given the simple example of

    use Data::Dumper; my $c = 0; my $d = [ $c, $c += 2 ]; print Dumper( $d );

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1076957]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (3)
As of 2024-04-25 22:12 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found