in reply to @arrys & Non exact searches.
I've used this trick before (even though it goes against advice I just gave on another question ... well, the situation's different here, so ...)
Once you've split the search terms up, you might try joining 'em back together with a pipe | which will allow you to write a simple regex to match any of your search terms.
I'm going to assume that each element of @names is a full name. What you want, I take it, is a list of the names which match your disjunctive search (you're doing this by updating a global variable ... it's much cleaner to return the list of matches from the sub, that way lies less confusion; this routine returns a list of matches; as written, it also expects to be passed what the user entered in the search form.)
sub search { my $terms = shift; my $pattern = join "|", split /\s+/, $terms; my @matches = $FORM{case} eq 'insensitive' ? grep {/$pattern/i} @names : grep { /$pattern/ } @names; return \@matches; }
HTH
Philosophy can be made out of anything. Or less -- Jerry A. Fodor
|
---|
Replies are listed 'Best First'. | |
---|---|
don't get bit by split.
by danger (Priest) on Mar 21, 2001 at 00:11 UTC | |
by akm2 (Scribe) on Mar 21, 2001 at 21:40 UTC | |
by runrig (Abbot) on Mar 21, 2001 at 21:43 UTC | |
by davorg (Chancellor) on Mar 21, 2001 at 21:51 UTC |