The most straightforward option is to join
the blacklist entries into a single regular expression, then grep
the keyword list for those which don't match that regex:
#!/usr/bin/env perl
use strict;
use warnings;
use 5.010;
my @keywords =
('some good keyword', 'some other good keyword', 'some bad keyword');
my @blacklist = ('bad');
my $re = join '|', @blacklist;
my @good = grep { $_ !~ /$re/ } @keywords;
say join "\n", @good;
Output:
some good keyword
some other good keyword