This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta: Use '#' for ticket number
[perl5.git] / pod / perldelta.pod
index bcf2fe3..5bde2ee 100644 (file)
@@ -1426,6 +1426,8 @@ the feature:
     no warnings "experimental::declared_refs";
     use feature "declared_refs";
 
+See L</Declaring a reference to a variable>.
+
 =item *
 
 L<Version control conflict marker|perldiag/"Version control conflict marker">
@@ -1504,6 +1506,8 @@ which may change or be removed in a future Perl version:
     use feature "declared_refs";
     $fooref = my \$foo;
 
+See L</Declaring a reference to a variable>.
+
 =item *
 
 L<C<${^ENCODING}> is no longer supported. Its use will be fatal in Perl 5.28|perldiag/"${^ENCODING} is no longer supported. Its use will be fatal in Perl 5.28">
@@ -1536,148 +1540,111 @@ C<@INC> to avoid confusion.
 
 =item *
 
-Attribute "locked" is deprecated, and will disappear in Perl 5.28
-
-=item *
-
-Attribute "unique" is deprecated, and will disappear in Perl 5.28
-
-=item *
-
-Constants from lexical variables potentially modified elsewhere are
-deprecated. This will not be allowed in Perl 5.32
-
-=item *
-
-Deprecated use of C<my()> in false conditional. This will be a fatal error
-in Perl 5.30
-
-=item *
-
-C<dump()> better written as C<CORE::dump()>. C<dump()> will no longer be available
-in Perl 5.30
-
-=item *
-
-C<${^ENCODING}> is no longer supported. Its use will be fatal in Perl 5.28
-
-=item *
-
-Experimental %s on scalar is now forbidden
-This message now is followed by more helpful text. [perl #127976]
-
-=item *
-
-C<File::Glob::glob()> will disappear in perl 5.30. Use C<File::Glob::bsd_glob()>
-instead.
-
-=item *
-
-%s() is deprecated on C<:utf8> handles. This will be a fatal error in Perl 5.30
-"%s" is one of C<sysread>, C<recv>, C<syswrite>, or C<send>.
+Details as to the exact problem have been added to the diagnostics that
+occur when malformed UTF-8 is encountered when trying to convert to a
+code point.
 
 =item *
 
-C<$*> is no longer supported. Its use will be fatal in Perl 5.30
+L<Attribute "locked" is deprecated, and will disappear in Perl 5.28
+|perldiag/Attribute "locked" is deprecated, and will disappear in Perl 5.28>
 
 =item *
 
-Opening dirhandle %s also as a file. This will be a fatal error in Perl 5.28
+L<Attribute "unique" is deprecated, and will disappear in Perl 5.28
+|perldiag/Attribute "unique" is deprecated, and will disappear in Perl 5.28>
 
 =item *
 
-Opening filehandle %s also as a directory. This will be a fatal
-error in Perl 5.28
+L<Constants from lexical variables potentially modified elsewhere are deprecated. This will not be allowed in Perl 5.32
+|perldiag/Constants from lexical variables potentially modified elsewhere are deprecated. This will not be allowed in Perl 5.32>
 
 =item *
 
-Setting C<$/> to a reference to %s as a form of slurp is deprecated,
-treating as undef. This will be fatal in Perl 5.28
+L<Deprecated use of C<my()> in false conditional. This will be a fatal error in Perl 5.30
+|perldiag/Deprecated use of C<my()> in false conditional. This will be a fatal error in Perl 5.30>
 
 =item *
 
-Unescaped left brace in regex is deprecated here (and will be fatal
-in Perl 5.30), passed through in regex; marked by S<< E<lt>-- HERE >> in m/%s/
+L<C<dump()> better written as C<CORE::dump()>. C<dump()> will no longer be available in Perl 5.30
+|perldiag/C<dump()> better written as C<CORE::dump()>. C<dump()> will no longer be available in Perl 5.30>
 
 =item *
 
-Unknown charname '' is deprecated. Its use will be fatal in Perl 5.28
+L<C<${^ENCODING}> is no longer supported. Its use will be fatal in Perl 5.28
+|perldiag/C<${^ENCODING}> is no longer supported. Its use will be fatal in Perl 5.28>
 
 =item *
 
-Use of bare E<lt>E<lt> to mean E<lt>E<lt>"" is deprecated. Its use will be fatal in Perl 5.28
+L<Experimental %s on scalar is now forbidden This message now is followed by more helpful text. [perl #127976]
+|perldiag/Experimental %s on scalar is now forbidden>.
+This message now is followed by more helpful text. [perl #127976]
 
 =item *
 
-Use of code point 0x%s is deprecated; the permissible max is 0x%s.
-This will be fatal in Perl 5.28
+L<C<File::Glob::glob()> will disappear in perl 5.30. Use C<File::Glob::bsd_glob()> instead.
+|perldiag/C<File::Glob::glob()> will disappear in perl 5.30. Use C<File::Glob::bsd_glob()> instead.>
 
 =item *
 
-Use of comma-less variable list is deprecated. Its use will be fatal
-in Perl 5.28
+L<%s() is deprecated on C<:utf8> handles. This will be a fatal error in Perl 5.30
+|perldiag/%s() is deprecated on C<:utf8> handles. This will be a fatal error in Perl 5.30>.
+"%s" is one of C<sysread>, C<recv>, C<syswrite>, or C<send>.
 
 =item *
 
-Use of inherited C<AUTOLOAD> for non-method %s() is deprecated. This
-will be fatal in Perl 5.28
+L<C<$*> is no longer supported. Its use will be fatal in Perl 5.30
+|perldiag/C<$*> is no longer supported. Its use will be fatal in Perl 5.30>
 
 =item *
 
-Use of strings with code points over 0xFF as arguments to %s operator
-is deprecated. This will be a fatal error in Perl 5.28
+L<Opening dirhandle %s also as a file. This will be a fatal error in Perl 5.28
+|perldiag/Opening dirhandle %s also as a file. This will be a fatal error in Perl 5.28>
 
 =item *
 
-Improve error for missing C<tie()> package/method. This brings the error messages
-in line with the ones used for normal method calls, despite not using
-call_method().
+L<Opening filehandle %s also as a directory. This will be a fatal error in Perl 5.28
+|perldiag/Opening filehandle %s also as a directory. This will be a fatal error in Perl 5.28>
 
 =item *
 
-C<do> errors now refer to C<do> (not C<require>).
+L<Setting C<$/> to a reference to %s as a form of slurp is deprecated, treating as undef. This will be fatal in Perl 5.28
+|perldiag/Setting C<$/> to a reference to %s as a form of slurp is deprecated, treating as undef. This will be fatal in Perl 5.28>
 
 =item *
 
-Details as to the exact problem have been added to the diagnostics that
-occur when malformed UTF-8 is encountered when trying to convert to a
-code point.
+L<Unescaped left brace in regex is deprecated here (and will be fatal in Perl 5.30), passed through in regex; marked by S<< E<lt>-- HERE >> in mE<sol>%sE<sol>
+|perldiag/Unescaped left brace in regex is deprecated here (and will be fatal in Perl 5.30), passed through in regex; marked by S<< E<lt>-- HERE >> in m/%s/>
 
 =item *
 
-Executing C<undef $x> where C<$x> is tied or magical no longer incorrectly
-blames the variable for an uninitialized-value warning encountered by the
-tied/magical code.
+L<Unknown charname '' is deprecated. Its use will be fatal in Perl 5.28
+|perldiag/Unknown charname '' is deprecated. Its use will be fatal in Perl 5.28>
 
 =item *
 
-Code like C<$x = $x . "a"> was incorrectly failing to yield a
-L<use of uninitialized value|perldiag/"Use of uninitialized value%s">
-warning when C<$x> was a lexical variable with an undefined value. That has
-now been fixed. [perl #127877]
+L<Use of bare E<lt>E<lt> to mean E<lt>E<lt>"" is deprecated. Its use will be fatal in Perl 5.28
+|perldiag/Use of bare E<lt>E<lt> to mean E<lt>E<lt>"" is deprecated. Its use will be fatal in Perl 5.28>
 
 =item *
 
-C<undef *_; shift> or C<undef *_; pop> inside a subroutine, with no
-argument to C<shift> or C<pop>, began crashing in Perl 5.14, but has now
-been fixed.
+L<Use of code point 0x%s is deprecated; the permissible max is 0x%s.  This will be fatal in Perl 5.28
+|perldiag/Use of code point 0x%s is deprecated; the permissible max is 0x%s.  This will be fatal in Perl 5.28>
 
 =item *
 
-C<< "string$scalar-E<gt>$*" >> now correctly prefers concat overloading to
-string overloading if C<< $scalar-E<gt>$* >> returns an overloaded object,
-bringing it into consistency with C<$$scalar>.
+L<Use of comma-less variable list is deprecated. Its use will be fatal in Perl 5.28
+|perldiag/Use of comma-less variable list is deprecated. Its use will be fatal in Perl 5.28>
 
 =item *
 
-C<< /@0{0*-E<gt>@*/*0 >> and similar contortions used to crash, but no longer
-do, but merely produce a syntax error. [perl #128171]
+L<Use of inherited C<AUTOLOAD> for non-method %s() is deprecated. This will be fatal in Perl 5.28
+|perldiag/Use of inherited C<AUTOLOAD> for non-method %s() is deprecated. This will be fatal in Perl 5.28>
 
 =item *
 
-C<do> or C<require> with a reference or typeglob which, when stringified,
-contains a null character started crashing in Perl 5.20, but has now been
-fixed. [perl #128182]
+L<Use of strings with code points over 0xFF as arguments to %s operator is deprecated. This will be a fatal error in Perl 5.28
+|perldiag/Use of strings with code points over 0xFF as arguments to %s operator is deprecated. This will be a fatal error in Perl 5.28>
 
 =back
 
@@ -1865,7 +1832,7 @@ over 750 lines of unhelpful output.
 
 =item *
 
-Cleanup for C<clang -Weverything> support. [perl 129961]
+Cleanup for C<clang -Weverything> support. [perl #129961]
 
 =item *
 
@@ -2914,28 +2881,74 @@ Code like this: C</(?{ s!!! })/> can trigger infinite recursion on the C
 stack (not the normal perl stack) when the last successful pattern in
 scope is itself.  We avoid the segfault by simply forbidding the use of
 the empty pattern when it would resolve to the currently executing
-pattern.  [perl 129903]
+pattern.  [perl #129903]
 
 =item *
 
 Avoid reading beyond the end of the line buffer when there's a
-short UTF-8 character at the end.  [perl 128997]
+short UTF-8 character at the end.  [perl #128997]
+
+=item *
+
+Fix firstchar bitmap under utf8 with prefix optimisation. [perl #129950]
+
+=item *
+
+Make F<Carp/t/arg_string.t>: be liberal in C<f>/C<p> formats. [perl #129954]
+
+=item *
+
+Make C<do "a\0b"> fail silently instead of throwing an error. [perl #129928]
+
+=item *
+
+Make C<chdir> allocate the stack it needs. [perl #129130]
+
+=item *
+
+C<do> errors now refer to C<do> (not C<require>).
+
+=item *
+
+Executing C<undef $x> where C<$x> is tied or magical no longer incorrectly
+blames the variable for an uninitialized-value warning encountered by the
+tied/magical code.
+
+=item *
+
+Code like C<$x = $x . "a"> was incorrectly failing to yield a
+L<use of uninitialized value|perldiag/"Use of uninitialized value%s">
+warning when C<$x> was a lexical variable with an undefined value. That has
+now been fixed. [perl #127877]
+
+=item *
+
+C<undef *_; shift> or C<undef *_; pop> inside a subroutine, with no
+argument to C<shift> or C<pop>, began crashing in Perl 5.14, but has now
+been fixed.
 
 =item *
 
-Fix firstchar bitmap under utf8 with prefix optimisation. [perl 129950]
+C<< "string$scalar-E<gt>$*" >> now correctly prefers concat overloading to
+string overloading if C<< $scalar-E<gt>$* >> returns an overloaded object,
+bringing it into consistency with C<$$scalar>.
 
 =item *
 
-Make F<Carp/t/arg_string.t>: be liberal in C<f>/C<p> formats. [perl 129954]
+C<< /@0{0*-E<gt>@*/*0 >> and similar contortions used to crash, but no longer
+do, but merely produce a syntax error. [perl #128171]
 
 =item *
 
-Make C<do "a\0b"> fail silently instead of throwing an error. [perl 129928]
+C<do> or C<require> with a reference or typeglob which, when stringified,
+contains a null character started crashing in Perl 5.20, but has now been
+fixed. [perl #128182]
 
 =item *
 
-Make C<chdir> allocate the stack it needs. [perl 129130]
+Improve error for missing C<tie()> package/method. This brings the error messages
+in line with the ones used for normal method calls, despite not using
+call_method().
 
 =back