# Simple query (same as: +xxx -ppp -jjj): my $query = "xxx-(ppp,jjj)"; use Keywords; my $kw = Keywords->new(ignorecase => 1); $kw->prepare($query); # Simple test: print "Match!" if $kw->test($list_of_tags); # @ids has some keys %table: @ok = grep {$kw->test($table{$_}[$col])} @ids; # Same as before: @ok = $kw->grep_keys(map {$_ => $table{$_}[$col]} @ids); # Hash only has keywords lists: @ok = $kw->grep_keys(%tags); # When ids are full keywords: @ok = $kw->grep(@ids);