this worked a treat. thank you so much.
i wasn't planning on using ? to match a single character, i figured that
would be getting too complicated. how would that be done anyway? i must say
my regex skills aren't very good :/

dan

"Jeff 'japhy' Pinyan" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> On Jul 22, dan said:
>
> > 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
>
> Do you plan on allowing the '?' wildcard to match any single character?
> Just curious how robust this should be.
>
> > sub wcmhost {
> >   $temp1 = shift;
> >   $temp2 = shift;
> >   ($temp1 = quotemeta $temp1) =~ s/\\\*/.*/g;
>
> I would instead say:
>
>    $temp1 =~ s{([^\w\s])}{
>      if ($1 eq '*') { '.*' }
>      else { "\\$1" }
>    }eg;
>
> I believe that's somewhat safer.
>
> >   if ($temp2 =~ $temp1) { return 1; }
> >   else { return 0; }
>
> You want to anchor the regex with ^ and $:
>
>    if ($temp2 =~ /^$temp1$/) { return 1 }
>    else { return 0 }
>
> And while we're at it, you could just write:
>
>    return $temp2 =~ /^$temp1$/;
>
> > }
>
> -- 
> Jeff "japhy" Pinyan         %  How can we ever be the sold short or
> RPI Acacia Brother #734     %  the cheated, we who for every service
> http://japhy.perlmonk.org/  %  have long ago been overpaid?
> http://www.perlmonks.org/   %    -- Meister Eckhart



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to