Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re: Regex without 'm' or '/'

by danger (Priest)
on Jul 10, 2002 at 04:05 UTC ( [id://180667]=note: print w/replies, xml ) Need Help??


in reply to Regex without 'm' or '/'
in thread Am I on the pipe, or what?

What I cannot find in the on-line docs

Its an operator thing, not a regex thing --- from perlop under "Binding Operators":

... If the right argument is an expression rather than a search pattern, substitution, or transliteration, it is interpreted as a search pattern at run time. This can be less efficient than an explicit search, because the pat- tern must be compiled every time the expression is evalu- ated.

This can sometimes cause problems for newcomers, especially when they use split with a double-quoted string as the split pattern (as seems to happen with undue frequency) and have an escaped metacharacter in the pattern:

$_ = 'this has a | pipe'; @a = split /\|/; # good print join(":", @a),"\n"; @a = split "\|"; # oops print join(":", @a),"\n";

In the second case, the double-quoted string is first evaluated and the *resulting* string (sans backslash) is then used as the pattern in the regex.

Replies are listed 'Best First'.
Re: Re: Regex without 'm' or '/'
by hv (Prior) on Feb 24, 2003 at 01:19 UTC
    If the right argument is an expression rather than a search pattern, substitution, or transliteration, it is interpreted as a search pattern at run time. This can be less efficient than an explicit search, because the pat- tern must be compiled every time the expression is evalu- ated.

    This perlop text must be a holdover from a while back. At least as far back as 5.005_03, code like $str1 =~ 'bc' (with a constant string for the pattern) would be compiled only once. Between 5.6.0 and 5.6.1 an extra check was added, so that even $str =~ $str2 would not be recompiled as long as $str2 had not changed.

    I guess the second statement should simply be deleted from that paragraph.

    Hugo

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://180667]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (5)
As of 2024-04-19 13:49 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found