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.
In reply to Re: Re: Re: Regular Exp parsing
by MarkM
in thread Regular Exp parsing
by Cupojava
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |