----- Original Message ---- > From: Chris Bennett <ch...@bennettconstruction.biz> > To: ch...@bennettconstruction.biz; modperl@perl.apache.org > Sent: Sun, April 25, 2010 8:17:07 AM > Subject: Re: Getting a / when regex should produce nothing
> Is there a better regex for .?\w?\w? > I want a . letter letter not . letter > or just two letters etc. (?:\.\w{2})? > This regex is to prevent read or write access to > files up the directory > tree or non html files. There is also a username > password for any write > access. > undef my $variable is not a common > idiom but is seen in Programming Perl > and other places. Is there any reason > I should use my $variable = undef? > More typing. :) What's wrong with just typing "my $variable;"? > Why was I getting > a / back? Is that an artifact > from the perl internals? In your previous code you didn't check that the pattern had matched before using $1. In the case when your pattern doesn't match, $1 remains unchanged from whatever last set it. There's probably some code earlier on, or internal to mod-perl, which does a (successful) pattern match that sets $1 to "/". The lesson here should be to always check the return value of your regexps for success, especially when you've used capture variables in your code like $1-$9.