http://qs321.pair.com?node_id=72738


in reply to About this behavior
in thread NEWBIE Brain Teaser

Well, and someone please correct me if I mislead on this post,

If you think about the code:
foreach $each (@list) {
$each *= 2;
$newlist$i = $each;
++$i;
}


From Programming Perl: Note that the loop variable becomes a reference to the element itself, rather than a copy of the element. Hence, modifying the loop variable will modify the original array.

The snippet loops through the contents of @list and as each cell gets looked at, it is assigned to $each. $each is then modified by multiplying by 2. Modifying $each, modifies the value in the shell, due to the way foreach is constructed in perl. I believe that is all correct. If I have made any mistakes ( other than grammar, and spelling ), someone please tell me.

Macphisto the I.T. Ninja

Everyone has their demons....