use Regexp::List (); my @keywords = ("keyword1", "keyword2", "keyword3"); my $pattern = Regexp::List->new->list2re(@keywords); #my $pattern = join('|', map quotemeta, @keywords); # Alternative while () { if ($_ =~ $pattern) { # or just: if (/$pattern/) { print $_; # or just: print; } }