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

Roy Johnson has asked for the wisdom of the Perl Monks concerning the following question:

A fellow who is learning Perl came to me with the discovery that using commas instead of semicolons in a for loop causes it to loop three times. That made sense to me: it was treating it as a foreach loop with three items in the list.

What didn't make sense to me was the output. The final value in the list is the only value for the variable in the loop (as if the comma were being treated as an op for a scalar expression, but it still does three iterations). This is more easily explained with code:

my $i; for ($i=3, $i=2, $i=1) { print "$_ and $i\n"; }
output is:
1 and 1 1 and 1 1 and 1
Please impart some Perl Wisdom to explain this mystery.

The PerlMonk tr/// Advocate