What makes you think the /o makes it faster? Is there some
wrong documentation suggesting it does?
Abigail | [reply] |
From 'man perlop':
If you want such a pattern to be compiled only once, add a "/o" after the trailing delimiter. This avoids expensive run-time recompilations, and is useful when the value you are interpolating won't change over the life of the script.
Same thing in camel book (3rd ed.) p.148.
| [reply] |
You left out some important context. The full text is PATTERN may contain variables, which will be interpolated (and the pattern recompiled) every time the pattern search is evaluated, except for when the delimiter is a single quote. (Note that $(, $), and $| are not interpolated because they look like end-of-string tests.) If you want such a pattern to be compiled only once, add a "/o" after the trailing delimiter. This avoids expensive run-time recompilations, and is useful when the value you are interpolating won't change over the life of the script. However, mentioning "/o" constitutes a promise that you won't change the variables in the pattern. If you change them, Perl won't even notice
Notice that the text is only talking about patterns with variables in them (which is what the phrase "such a pattern" in what you quoted is referring to).
| [reply] |
So, which variable is present in /^#/ ?
Abigail
| [reply] |