my @res = grep { !/$tmp/ } @array;
####
use 5.020;
use Data::Dumper;
my $tmp = qr/re/;
my @positive = grep {/$tmp/} 'rerere', 'foo';
my @negative = grep {/(?!$tmp)/} 'rerere', 'foo';
say Dumper \@positive; # 'rerere'
say Dumper \@negative; # 'rerere', 'foo'
####
use 5.020;
use Data::Dumper;
my $tmp = qr/re/;
my $reverse = 0; #
my @positive = grep {!! /$tmp/ xor $reverse } 'rerere', 'foo';
$reverse = 1;
my @negative = grep {!! /$tmp/ xor $reverse } 'rerere', 'foo';
say Dumper \@positive; # 'rerere'
say Dumper \@negative; # 'foo'