[prev in list] [next in list] [prev in thread] [next in thread] 

List:       perl5-porters
Subject:    RFC: deprecate literal \v in patterns except under /x; /[#]/xx
From:       Karl Williamson <public () khwilliamson ! com>
Date:       2017-12-31 20:31:31
Message-ID: 814d7b71-b631-ca84-0727-058238cc0389 () khwilliamson ! com
[Download RAW message or body]

I am proposing two deprecations

First, using literal vertical space, such as a form feed or new line, in 
a regular expression pattern unless that pattern is /x.  My guess is 
that this is extremely uncommon, and that just about all such 
occurrences would be from forgetting the /x.  So deprecating this should 
affect hardly anyone.  The reason I believe it is uncommon is that when 
displayed the pattern would look something like this:

	abc
            def
or the def would overwrite the abc if the vertical space is a carriage 
return.  If it is a newline, the def would appear under the abc, and 
that might look ok.  I haven't come up with a way to grep cpan for this 
that doesn't have false positive /x uses.

The reason I want to do this is to detect and warn on instances like 
this, and where the programmer forgot that '#' starts a comment.  This 
deprecation will be helpful in that regard.

Second, in order to make the new /xx modifier more useful (and yes, this 
should have been made experimental) I want to deprecate '#' occurring in 
a bracketed character class.  At a later date, given the first 
deprecation as well, we could allow [...] to be split across lines with 
comments about each component.
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic