develooper Front page | perl.perl5.porters | Postings from December 2017

RFC: deprecate literal \v in patterns except under /x; /[#]/xx

Thread Next
From:
Karl Williamson
Date:
December 31, 2017 20:31
Subject:
RFC: deprecate literal \v in patterns except under /x; /[#]/xx
Message ID:
814d7b71-b631-ca84-0727-058238cc0389@khwilliamson.com
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.

Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About