use Regexp::Trie; my $rt = Regexp::Trie->new; open(IN, "phrases.txt"); @list = ; for (@list){ chomp; $rt->add($_); } my $regexp = $rt->regexp; print "$regexp\n"; if ($incoming{text} =~ qr(\b$regexp\b)){ print "Matched: $& \n"; }