Example: @moo = (1 .. 10); foreach (@moo) { if ($_ % 2 > 0) { DROP();} # <----- is what I would LOVE # to do } #### Grep: @moo = grep {($_ % 2 > 0)?0:1;} @moo; Or easier to add more complex code if you: @moo = grep {; {if ($_ % 2 > 0){ 0; last; } 1;}} @moo; # PS why do I need that first ';' - I don't know but I do For Loop: for (my $i=0;$i<@moo;$i++) { if ($moo[$i] % 2 > 0) {splice @moo, $i, 1;} } # wow is this slow