http://qs1969.pair.com?node_id=347106


in reply to Re: Mysterious for behavior
in thread Mysterious for behavior

Actually (and this was the point of confusion), I made $_ an alias to $i three times. I would have understood if it had acted like
for (scalar($i=3, $i=2, $i=1)) { print "$_ and $i\n"; }
where each assignment happens in turn, because of the comma operator, and $_ is aliased to the final result ($i) once. But that didn't happen. I expected each assignment expression to yield the value of its right-hand side, but Perl evaluated it more like:
$i=3, $i=2, $i=1; for ($i, $i, $i) { print "$_ and $i\n"; }

The interesting part

I can get the effect I expected by doing this:
for (0+($i=3), 0+($i=2), $i=1) { print "$_ and $i\n"; }

The PerlMonk tr/// Advocate