my @array; foreach my $item (@array) { my $return = foo($item); if (!$return) { print "$item returned false\n"; next; } other_stuff(); } #### my @array; my @newarray; foreach my $item (@array) { my $return = foo($item); if (!$return) { print "$item returned false\n"; push @newarray, $item; next; } other_stuff(); } @array = @newarray; # or whatever...