my @regex = map {qr /$_/ } qw/ regex1 regex2 . . regex 140 /; # @array has 20000 entries foreach $i (@array) { for $x (@regex) { push @match, $x if $i =~ m/$x/; } } #### foreach $x (@regex){ @bad_matches = grep ! m/$x/, @array;