my $negative_regex = join '|', map { s/^-//, $_ } @$negative_criteria; #### foreach(@$data) { push @$results, $_ if /$match_regex/ && !/$negative_regex/; }