Hi Shlomi,
> You shouldn't modify an array (@arr1 in this case) while iterating
over it using
> foreach. Otherwise, the results will be unpredictable. One option to
> overcome it is to do:
>
> [code]
> my @arr1_copy = @arr1;
>
> while (defined (my $arr1_elem = shift(@arr1_copy))) {
> # Do something with $arr1_elem
> }
> [/code]
Is the principle you are trying to explain that the foreach loop should
be changed to a while or that it is advisable to make a copy of the
original array? (Or just both? :-) ) I suppose it's all about the
'while' because even if I made a copy of the array but continued with
the foreach I would have the same problems, wouldn't I? Please confirm.
If not answered to the above question, please explain why it is
advisable to make a copy of the original array?
Regards,
Nora
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/