Looping over an array does not actually change it's contents (as far as I know, maybe there are some special arrays).
use Data::Dumper;
@arr = (1,2,3);
print Dumper(\@arr);
foreach $i (@arr) {
# not doing or changing anything here.
}
print Dumper(\@arr);
Shows that the array contents have not been changed. The same should hold for
while loops.
Update: I guess I will mention that in
PHP there are loop counters that you sometimes have to reset each time you want to iterate over an array. I don't know of anything like that in Perl though. Maybe that's where this question came from.