> If the right argument is an expression rather than a search pattern,
True, but this doesn't apply here, it's literal a search pattern (i.e. compile time), the m is just optional:
Both generate exactly the same opcodes:
"expressions evaluated at runtime" are things like variables or functions or do-blocks...
DB<103> $x= '\w{3}'
=> "\\w{3}"
DB<104> 'abc' =~ $x
=> 1
DB<105> sub regex { '\w{3}' }
DB<106> 'abc' =~ regex()
=> 1
Cheers Rolf
( addicted to the Perl Programming Language)
| [reply] [d/l] [select] |
OK, I see the light now.
<pedantic>
There's m//, and =~. m// can be used without =~ to match against $_, or with =~ to match against something else.
Without the presence of =~, m// can omit the m if the delimiter is //, else it is required.
=~ expects to see a match, substitution, or translation on the RHS, and assumes a match without m//, s//, y//, or tr//.
</pedantic>
And since m//, and =~ are 2 separate entities (that slightly overlap), the documentation doesn't tie these together explicitly (IMHO).
-QM
--
Quantum Mechanics: The dreams stuff is made of
| [reply] [d/l] [select] |