in reply to Re: Re: Regular Exp parsing
in thread Regular Exp parsing
Zapowork: \A..\z is just as efficient as ^..$
\A..\z should be used to anchor a pure string, wheras ^..$ should be used to anchor a line. For most cases, the difference is subtle enough that, virtually, there is no difference (this is why cookbook examples, and a lot of existing code is able to get away with never using \A..\z). Still, it is proper to be accurate. If it is not expected, or acceptable for a string to end with '\n', \z should be used instead of $.
For example:
if ($ARGV[0] =~ /^-o$/) { ... }Will match "-o" or "-o\n". For command line arguments, "-o\n" should not be allowed. The more accurate expression is:
if ($ARGV[0] =~ /\A-o\z/) { ... }The reason I am so rigid about this point is that I have been hit by the difference in production code. I am now very strict about use \A..\z for strings and ^..$ for lines.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Re: Re: Regular Exp parsing
by Zapawork (Scribe) on Dec 13, 2002 at 21:44 UTC | |
by MarkM (Curate) on Dec 13, 2002 at 21:49 UTC |