sub filter_stuff { my $stuff = shift; my @patterns = @_; for (my $match, my $i = 0; $i < @$stuff; $i++ if $match) { for (@patterns) { $match = $$stuff[$i] =~ /$_/; splice(@$stuff, $i, 1) && last unless $match; } } }