-
Notifications
You must be signed in to change notification settings - Fork 577
Feature guard the removal of apostrophe as a package separator #22644
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Did you mean to say it wouldn't be included in the |
Indeed. I meant included as in Fixed the original message to clarify. |
apostrophe as package separate isn't just a source thing - it was also done internally in many places, typically converting apostrophe separated names into If this is made conditional on the feature I could see it causing problems when passing symbol names between code with the feature (' in names enabled as by default) and code without the feature. So I'd be inclined to just make the ' in symbols be featured guarded only in source and the API functions that deal with symbol names would always handle ' in names. Arguments for/against welcome. |
Is there a chance that this would leak and produce unexpected results? In my understanding, this is just syntax. With the feature enabled, it's possible to use So it seems to me (a core neophyte), that being guarded in source is sufficient. |
It seems unlikely, especially since these APIs have done this for most of perl5. Note that with the current state (apostrophe in names removed) APIs still accept apostrophes, just as they accept most symbols, but they aren't translated to
Right.
Ok. |
0c81a5c merged the removal of
'
as a package separator.After more discussion, the PSC believes it would be better to make the removal guarded by a feature.
(Similar to what was done with the
indirect
,multidimensional
andbareword_filehandles
features.)That feature would be included in the
:default
feature bundle and all bundles up to:5.40
. It wouldn't be included in:5.42
. The main benefit would be that none of the unmaintained modules on CPAN and elsewhere would break, while newer code would not be able to the apostrophe any more.It has been suggested that the only really surprising/problematic aspect of
'
as a package separator is in string interpolation (e.g."This is $owner's house"
would reference the package variable$owner::s
). We think that if the feature is disabled, it might has well be disabled entirely, including for subroutines (e.g.isn't
as provided byTest::More
—Note: this specific subroutine has been deprecated in recent versions of Test::More).The proposed name for the feature (which is unlikely to ever be enabled manually, so there's no need to consider ease of typing):
apostrophe_as_package_separator
.See also: Putting apostrophe as a package separator behind a feature.
The text was updated successfully, but these errors were encountered: