Dear fellow
Maybe you would like to use s,\B/\b,,og in place of the polluted s#/(gif/\w*\.gif)#$1#g. Its more generic and will run a little faster.
The main difference between using .* and \w* in your code is that .* allways try to "eat" as many characters it can, including spaces and everything else in your way(1). In your case, it will match "gif/cart.gif is a /gif/cart" (yes, all those).
On the other hand, \w* can't match that much characters, and stops matching when it finds a space character (e.g.: one of the " ", "\n", "\t", "\f"). That way, it will match "gif/cart", because the "gif/cart.gif is a /gif/cart" have spaces before the "\.gif" that you asked your regexp to match before that.
Hope that helps.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Just Another Perl Monk
Note #1: Actually, not exactly. But "What you don't know don't hurts you".
In reply to Re: pattern matching question
by monsieur_champs
in thread pattern matching question
by jxia
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |