my $i = 0; for my $item (@array) { if (foo($item)) { splice @array, $i, 0; # remove it. } else { print "$item returned false\n"; $i++; next; } other_stuff(); }