sub extract_terms(){ my $input = shift; chomp $input; my @searchterms = ($input =~ m/\b(?!\.)[a-z]+(?!\.)\b/gi); my @omissions = qw(terms and or not with near same xor adj); my %h; @h{@omissions} = undef; @searchterms = grep {not exists $h{$_}} @searchterms; return @searchterms; }