"be consistent" | |
PerlMonks |
comment on |
( [id://3333]=superdoc: print w/replies, xml ) | Need Help?? |
Yes, it's safe to do that, if what you want is what it happens to do. What you get with a foreach loop is that it does the first element in the array, then the second, then the third, and so on, until it runs out. If you change the elements as you go, it doesn't bother Perl; on the second iteration it gives you whatever the second element is at that moment, regardless of what it was when you started the loop. So for example:
This prints out 0, foo, 2. Similarly, the loop ends only when Perl runs out of elements, and if you add elements in the middle of the loop, Perl will iterate over the new elements also, until it reaches the current end of the array. This code is an infinite loop: @a = (1,2,3); foreach $element (@a) { print $element, "\n"; push @a, $element+3; } This prints 1 2 3 4 5 6 7... and so on forever, because it keeps extending the array, and Perl never gets to the end. In reply to Re: recurse directories?
by Dominus
|
|