From 0488277e6950afa4b5a39bdc2ac02991fdf72863 Mon Sep 17 00:00:00 2001 From: Tony Cook Date: Mon, 11 Nov 2024 11:15:44 +1100 Subject: [PATCH] perl5416delta for 91e15e585c79, reinstate apostrophe package separator It's in incompatible changes, it doesn't really belong in Core Enhancements. --- pod/perl5416delta.pod | 30 ++++++++++++++++++++++++++++++ pod/perldelta.pod | 5 +++-- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/pod/perl5416delta.pod b/pod/perl5416delta.pod index 5dfbb7fdde3b..9e9430d8a613 100644 --- a/pod/perl5416delta.pod +++ b/pod/perl5416delta.pod @@ -35,6 +35,36 @@ in-place directly, in the same way that C would do. =back +=head1 Incompatible Changes + +=head2 Apostrophe is again recognized as a global name separator + +This was deprecated in Perl 5.38 and removed as scheduled in perl +5.41.3, but after some discussion has been reinstated by default. + +This can be controlled with the C +feature which is enabled by default, but is disabled from the 5.41 +feature bundle onwards. + +If you want to disable use within your own code you can explicitly +disable the feature: + + no feature "apostrophe_as_package_separator"; + +Note that disabling this feature only prevents use of apostrophe as a +package separator within code; symbolic references still treat C<'> as +C<::> with the feature disabled: + + my $symref = "My'Module'Var"; + # default features + my $x = $My'Module'Var; # fine + no feature "apostrophe_as_package_separator"; + no strict "refs"; + my $y = $$symref; # like $My::Module::Var + my $z = $My'Module'Var; # syntax error + +[L] + =head1 Modules and Pragmata =head2 Updated Modules and Pragmata diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 513e65dda10b..32f394f36070 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -180,13 +180,14 @@ section. Additionally, the following selected changes have been made: -=head3 L +=head3 L =over 4 =item * -XXX Description of the change here +Added the change note for apostrophes in names being reinstated, which +was delayed by the review cycle. =back