in reply to Re^2: Misreading m// documentation (perlop =~ )
in thread Misreading m// documentation

> 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)

Replies are listed 'Best First'.
Re^4: Misreading m// documentation (perlop =~ )
by QM (Parson) on Mar 17, 2014 at 09:46 UTC
    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