[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