@list = grep { $_ != 2 && $_ != 4 } @list; #### my @foo = 1..10; for (my $i = 0; $i < @foo; $i++) { print "$i ($foo[$i])\n"; if ($foo[$i] == 5 || $foo[$i] == 6) { splice(@foo, $i, 1); redo; } }