This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Forbid use of bare << to mean <<""
[perl5.git] / pod / perldelta.pod
index 066efb7..d22cfed 100644 (file)
@@ -5,15 +5,15 @@
 [ this is a template for a new perldelta file.  Any text flagged as XXX needs
 to be processed before release. ]
 
-perldelta - what is new for perl v5.27.0
+perldelta - what is new for perl v5.27.1
 
 =head1 DESCRIPTION
 
-This document describes differences between the 5.26.0 release and the 5.27.0
+This document describes differences between the 5.27.0 release and the 5.27.1
 release.
 
-If you are upgrading from an earlier release such as 5.25.0, first read
-L<perl5260delta>, which describes differences between 5.25.0 and 5.26.0.
+If you are upgrading from an earlier release such as 5.26.0, first read
+L<perl5270delta>, which describes differences between 5.26.0 and 5.27.0.
 
 =head1 Notice
 
@@ -27,6 +27,12 @@ here, but most should go in the L</Performance Enhancements> section.
 
 [ List each enhancement as a =head2 entry ]
 
+=head2 L<C<delete>|perlfunc/delete EXPR> on key/value slices
+
+L<C<delete>|perlfunc/delete EXPR> can now be used on key/value slices,
+returning the keys along with the deleted values.
+L<[perl #131328]|https://rt.perl.org/Ticket/Display.html?id=131328>
+
 =head1 Security
 
 XXX Any security-related notices go here.  In particular, any security
@@ -45,10 +51,57 @@ XXX For a release on a stable branch, this section aspires to be:
 
 [ List each incompatible change as a =head2 entry ]
 
+=head2 Comma-less variable lists in formats are no longer allowed
+
+Omitting the commas between variables passed to formats is no longer
+allowed.  This has been deprecated since Perl 5.000.
+
+=head2 The C<:locked> and C<:unique> attributes have been removed
+
+These have been no-ops and deprecated since Perl 5.12 and 5.10,
+respectively.
+
+=head2 C<\N{}> with nothing between the braces is now illegal.
+
+This has been deprecated since Perl 5.24.
+
+=head2 Opening the same symbol as both a file and directory handle is no longer allowed
+
+Using open() and opendir() to associate both a filehandle and a dirhandle
+to the same symbol (glob or scalar) has been deprecated since Perl 5.10.
+
+=head2 Use of bare C<< << >> to mean C<< <<"" >> is no longer allowed
+
+Use of a bare terminator has been deprecated since Perl 5.000.
+
 =head1 Deprecations
 
 XXX Any deprecated features, syntax, modules etc. should be listed here.
 
+=head2 Use of L<C<vec>|perlfunc/vec EXPR,OFFSET,BITS> on strings with code
+points above 0xFF is deprecated.
+
+Use of these is nonsensical, as C<vec> is a bit-oriented operation,
+which operates on the underlying UTF-8 representation these strings must
+be in, and will likely give unexpected results.
+
+=head2 Some uses of unescaped C<"{"> are no longer fatal
+
+Perl 5.26.0 fatalized some uses of an unescaped left brace, but an
+exception was made at the last minute, specifically crafted to be a
+minimal change to allow GNU Autoconf to work.  This code is heavily
+depended upon, and continues to use the deprecated usage.  Its use of an
+unescaped left brace is one where we have no intention of repurposing
+C<"{"> to be something other than itself.
+
+That exception is now generalized to include various other such cases
+where the C<"{"> will not be repurposed.  This is to get real experience
+with this more complicated change now, in case we need to issue a dot
+release if we find other things like Autoconf that are important to work
+around.
+
+Note that these uses continue to raise a deprecation message.
+
 =head2 Module removals
 
 XXX Remove this section if inapplicable.
@@ -323,7 +376,12 @@ well.
 
 =item *
 
-XXX
+The C<PL_statbuf> interpreter variable has been removed.
+
+=item *
+
+The deprecated function C<to_utf8_case()>, accessible from XS code, has
+been removed.
 
 =back