in reply to (MeowChow) Re2: How do I remove an element from any array while iterating over it in a loop?
in thread How do I remove an element from any array while iterating over it in a loop?
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
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re (tilly) 4: How do I remove an element from any array while iterating over it in a loop?
by tilly (Archbishop) on Sep 01, 2001 at 04:15 UTC |