This is how the original should have been and -w would have well warned me that it was broke. You need to understand that splice will change the length of an array and so to the index of the next element when in a loop. Public humiliation *again* as MeowChow walks up, LOL and saunters off :-)
my @ary = qw( 0 1 5 5 5 0 5 5 5 1 0 ); $" = "~"; print "@ary\n"; my $deletions = 0; for my $i ( 0 .. $#ary ) { if ($ary[$i-$deletions] == 5) { splice @ary, ($i-$deletions), 1; $deletions++; } } print "@ary\n";
cheers
tachyon
s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print
In reply to Re: (MeowChow) Re2: How do I remove an element from any array while iterating over it in a loop?
by tachyon
in thread How do I remove an element from any array while iterating over it in a loop?
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |