Pattern-Matching Operators
Zoologically speaking, Perl’s pattern-matching operators function as a kind of cage for regular expressions, to keep them from getting out. This is by design; if we were to let the regex beasties wander throughout the language, Perl would be a total jungle. The world needs its jungles, of course—they’re the engines of biodiversity, after all—but jungles should stay where they belong. Similarly, despite being the engines of combinatorial diversity, regular expressions should stay inside pattern-match operators where they belong. It’s a jungle in there.
As if regular expressions weren’t powerful enough, the m// and s///
operators also provide the (likewise confined) power of double-quote
interpolation. Since patterns are parsed like double-quoted strings, all
the normal double-quote conventions will work, including variable
interpolation (unless you use single quotes as the delimiter) and special
characters indicated with backslash escapes. (See the section Specific Characters later in this chapter.) These are applied before
the string is interpreted as a regular expression. (This is one of the few
places in the Perl language where a string undergoes more than one pass of
processing.) The first pass is not quite normal double-quote interpolation
in that it knows what it should interpolate and what it should pass on to
the regular expression parser. So, for instance, any $ immediately followed by a vertical bar, closing parenthesis, or the end of the string ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access