Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re^4: reg. expr. multiple substitutions

by kennethk (Monsignor)
on May 17, 2012 at 15:24 UTC ( #971089=note: print w/ replies, xml ) Need Help??


in reply to Re^3: reg. expr. multiple substitutions
in thread reg. expr. multiple substitutions

My argument is not so much about performance, as it is about avoiding escaping problems and allowing ism modifiers. Since hash keys get stringified, keying off regexes already compromises any benefit from compiling. I would also expect readability would be improved if extensive escaping is necessary.

#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.


Comment on Re^4: reg. expr. multiple substitutions
Re^5: reg. expr. multiple substitutions
by BrowserUk (Pope) on May 17, 2012 at 15:46 UTC

    I wasn't talking about performance. If you are going to re-interpolate a qr// compiled regex, whatever escapaing might be required had you not used qr//, would still be required. Either manually, or via quotemeta. Ergo, the qr// would buy you nothing.


    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.

    The start of some sanity?

      whatever escapaing might be required had you not used qr//, would still be required
      Not completely. First off, if a regex $r is used as the *only* part of a pattern in /$r/ or s/$r/../, then it is not interpolated, but used as is. Secondly, by using a regex literal rather than a string literal, you get backslashed things handled right:
      $r = qr/\bfoo/; /$r/; # matches word boundary $r = "\bfoo"; /$r/; # matches backspace
      (Although this is mostly moot, since as was pointed out elsewhere, hash keys are stored as strings.)

      Dave.

        if a regex $r is used as the *only* part of a pattern in /$r/ or s/$r/../, then it is not interpolated, but used as is.

        That's information that I've never seen written down before. Thank you.


        With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        "Science is about questioning the status quo. Questioning authority".
        In the absence of evidence, opinion is indistinguishable from prejudice.

        The start of some sanity?

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (11)
As of 2014-07-11 16:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    When choosing user names for websites, I prefer to use:








    Results (232 votes), past polls