This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for _@ and _% prototypes
[perl5.git] / pod / perldelta.pod
index 28d327c..f3c1efb 100644 (file)
@@ -1,5 +1,9 @@
 =encoding utf8
 
+=for comment
+This has been completed up to a75c6ed6bbe, except for:
+803e389        rurban  CYG17 utf8 paths
+
 =head1 NAME
 
 [ this is a template for a new perldelta file. Any text flagged as
@@ -44,6 +48,23 @@ available for ARGV and environment variable conversions.
 
 Full details are in L<perllocale>.
 
+=head2 New function C<fc> and corresponding escape sequence C<\F> for Unicode foldcase
+
+Unicode foldcase is an extension to lowercase that gives better results
+when comparing two strings case-insensitively.  It has long been used
+internally in regular expression C</i> matching.  Now it is available
+explicitly through the new C<fc> function call (enabled by
+S<C<"use feature 'fc'">>, or C<use v5.16>, or explicitly callable via
+C<CORE::fc>) or through the new C<\F> sequence in double-quotish
+strings.
+
+Full details are in L<perlfunc/fc>.
+
+=head2 C<_> in subroutine prototypes
+
+The C<_> character in subroutine prototypes is now allowed before C<@> or
+C<%>.
+
 =head1 Security
 
 XXX Any security-related notices go here.  In particular, any security
@@ -62,6 +83,18 @@ XXX For a release on a stable branch, this section aspires to be:
 
 [ List each incompatible change as a =head2 entry ]
 
+=head2 Special blocks called in void context
+
+Special blocks (C<BEGIN>, C<CHECK>, C<INIT>, C<UNITCHECK>, C<END>) are now
+called in void context.  This avoids wasteful copying of the result of the
+last statement [perl #108794].
+
+=head2 The C<overloading> pragma and regexp objects
+
+With C<no overloading>, regular expression objects returned by C<qr//> are
+now stringified as "Regexp=REGEXP(0xbe600d)" instead of the regular
+expression itself [perl #108780].
+
 =head1 Deprecations
 
 XXX Any deprecated features, syntax, modules etc. should be listed here.
@@ -113,12 +146,60 @@ XXX
 
 =item *
 
-L<DB_File> has been upgraded from version 1.824 to version 1.825.
+L<B> has been upgraded from version 1.33 to version 1.34.
+
+C<B::COP> now has a C<stashflags> method, corresponding to a new internal
+field added in 5.15.4 [perl #108860].
+
+=item *
+
+L<Compress::Raw::Bzip2> has been upgraded from version 2.045 to version 2.048.
+
+=item *
+
+L<Compress::Raw::Zlib> has been upgraded from version 2.045 to version 2.048.
+
+=item *
+
+L<Compress::Zlib> has been upgraded from version 2.046 to version 2.048.
+
+=item *
+
+L<DB_File> has been upgraded from version 1.824 to version 1.826.
+
+=item *
+
+L<diagnostics> has been upgraded from version 1.27 to version 1.28.
+
+When searching for F<perldiag.pod>, it no longer uses paths that were only
+relevant on Perl 5.004 and earlier.
+
+=item *
+
+L<IPC::Cmd> has been upgraded from version 0.72 to version 0.76.
+
+=item *
+
+L<Math::Complex> has been upgraded from version 1.58 to version 1.59.
+
+This avoids a new core warning.
 
 =item *
 
 L<Pod::Parser> has been upgraded from version 1.37 to version 1.51.
 
+=item *
+
+L<Time::HiRes>  has been upgraded from version 1.9724 to version 1.9725.
+
+There is an important bugfix for C<Time::HiRes::stat()>.
+
+=item *
+
+L<Unicode::UCD> has been upgraded from version 0.39 to 0.40.
+
+The only change is to fix a formatting error in the Pod.
+
 =back
 
 =head2 Removed Modules and Pragmata
@@ -347,6 +428,40 @@ L</Modules and Pragmata>.
 C<~~> now correctly handles the precedence of Any~~Object, and is not tricked
 by an overloaded object on the left-hand side.
 
+=item *
+
+C<stat _> no longer warns about unopened filehandles [perl #71002].
+
+=item *
+
+C<stat> on an unopened filehandle now warns consistently, instead of
+skipping the warning at times.
+
+=item *
+
+A change in an earlier 5.15 release caused warning hints to propagate into
+C<do $file>.  This has been fixed [rt.cpan.org #72767].
+
+=item *
+
+Starting with 5.12.0, Perl used to get its internal bookkeeping muddled up
+after assigning C<${ qr// }> to a hash element and locking it with
+L<Hash::Util>.  This could result in double frees, crashes or erratic
+behaviour.
+
+=item *
+
+In 5.15.7, some typeglobs in the CORE namespace were made read-only by
+mistake.  This has been fixed [rt.cpan.org #74289].
+
+=item *
+
+C<-t> now works when stacked with other filetest operators [perl #77388].
+
+=item *
+
+Stacked filetest operators now only call FETCH once on a tied argument.
+
 =back
 
 =head1 Known Problems