dan wrote:
> hi
Hello,
> i have a bit of a puzzling question. well, puzzling to me anyway.
> i have a sub which is passed 2 arguments. a wildcard search, and an actual
> string to search in.
> the wildcard search could be anything like an exact match with no wildcards
> in, or a proper wildcarded search. such as:
> *.co.uk
> someones.hostname.com
> etc and it has to search through a list of hosts and return only the ones
> that match the search string supplied.
>
> the sub i have is:
> sub wcmhost {
> $temp1 = shift;
> $temp2 = shift;
> ($temp1 = quotemeta $temp1) =~ s/\\\*/.*/g;
> if ($temp2 =~ $temp1) { return 1; }
> else { return 0; }
> }
> whereas this is all very well, but if i search for *.uk, it won't just
> return hostnames ending in ".uk", but it will return a host such as
> "this.is.my.ukhostname.net", matching the ".uk" inside it too. what
> modifications do i need to make to this sub so it only matches what's given,
> and wildcards where there's a *?
> temp1 is the search string, temp2 is the actual string it has to search in.
> the sub is called from within a foreach loop which loops through a list of
> hostnames, and responds according to the 1 or 0 this sub returns.
It looks like you need this module:
http://search.cpan.org/~rclamp/Text-Glob-0.06/lib/Text/Glob.pm
John
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>