Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re^2: Conditionally executing different code based on Perl Version

by dlarochelle (Sexton)
on Mar 08, 2012 at 16:32 UTC ( #958492=note: print w/ replies, xml ) Need Help??


in reply to Re: Conditionally executing different code based on Perl Version
in thread Conditionally executing different code based on Perl Version

Considering that /d is the default, why even bother? If you aren't using use re '/l'; or use re '/u'; in an outer scope, there's no need to do use re '/d'; in an inner. Quoting from perlre:
If none of the above apply, for backwards compatibility reasons, the "/d" modifier is the one in effect by default. As this can lead to unexpected results, it is best to specify which other rule set should be used.
Good question. It turns out that the default is different if the code has 'use locale' and this code did:

The use re '/foo' pragma can be used to set default modifiers (including these) for regular expressions compiled within its scope. This pragma has precedence over the other pragmas listed below that change the defaults.

Otherwise, use locale sets the default modifier to /l ; and use feature 'unicode_strings or use VERSION (or higher) set the default to /u when not in the same scope as either use locale or use bytes. Unlike the mechanisms mentioned above, these affect operations besides regular expressions pattern matching, and so give more consistent results with other operators, including using \U , \l , etc. in substitution replacements.

If none of the above apply, for backwards compatibility reasons, the /d modifier is the one in effect by default. As this can lead to unexpected results, it is best to specify which other rule set should be used.

So for code with 'use locale' the default regex behavior changed from 5.12 to 5.14.


Comment on Re^2: Conditionally executing different code based on Perl Version

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (8)
As of 2014-12-22 22:49 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (132 votes), past polls