} elsif ( $msg =~ /^\?search (.+?)\s*$/ ) { my @query = split /\s+/, lc $1; if ( @query ) { my @result; local $_; s/\\//g for ( @query ); for my $lookup ( keys %{$self->{"mistresswords"}} ) { my $add = 0; for my $queryword ( @query ) { $add++ if "$lookup ".$self->{"mistresswords"}->{$lookup} =~ /\Q$queryword\E/i; } push @result, $lookup if $add == $#query+1; } if ( @result ) { $event->conn->out("NOTICE $nick :Search results for " . join(" AND ",@query) . " returned: " . ( @result > 20 ? join(", ",@result[0 .. 19]).", ..." : join(", ",@result) ) ); } else { $event->conn->out("NOTICE $nick :No results."); } } }