This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta for warn gmagic fixes
[perl5.git] / pod / perldelta.pod
index c7a0436..ef200d9 100644 (file)
@@ -122,6 +122,14 @@ make use of them.
 
 =item *
 
 
 =item *
 
+L<B> has been upgraded from version 1.35 to 1.36.
+
+C<B::COP::stashlen> has been replaced with C<B::COP::stashoff>.
+
+C<B::COP::stashpv> now supports UTF8 package names and embedded nulls.
+
+=item *
+
 L<ExtUtils::CBuilder> has been upgraded from version 0.280206 to 0.280208.
 
 It no longer fails when trying to embed manifests on Windows
 L<ExtUtils::CBuilder> has been upgraded from version 0.280206 to 0.280208.
 
 It no longer fails when trying to embed manifests on Windows
@@ -263,6 +271,11 @@ XXX Describe change here
 The "Runaway prototype" warning that occurs in bizarre cases has been
 removed as being unhelpful and inconsistent.
 
 The "Runaway prototype" warning that occurs in bizarre cases has been
 removed as being unhelpful and inconsistent.
 
+=item *
+
+The "Not a format reference" error has been removed, as the only case in
+which it could be triggered was a bug.
+
 =back
 
 =head1 Utility Changes
 =back
 
 =head1 Utility Changes
@@ -430,6 +443,12 @@ nulls through unchanged [perl #97478].
 
 =item *
 
 
 =item *
 
+C<prototype> now treats magical variables like C<$1> the same way as
+non-magical variables when checking for the CORE:: prefix, instead of
+treating them as subroutine names.
+
+=item *
+
 Under threaded perls, a run-time code block in a regular expression could
 corrupt the package name stored in the op tree, resulting in bad reads
 in C<caller>, and possibly crashes [perl #113060].
 Under threaded perls, a run-time code block in a regular expression could
 corrupt the package name stored in the op tree, resulting in bad reads
 in C<caller>, and possibly crashes [perl #113060].
@@ -453,6 +472,26 @@ to see a stack frame belonging to that deleted package.  C<caller> could
 crash if the stash's memory address was reused for a scalar and a
 substitution was performed on the same scalar [perl #113486].
 
 crash if the stash's memory address was reused for a scalar and a
 substitution was performed on the same scalar [perl #113486].
 
+=item *
+
+C<UNIVERSAL::can> no longer treats its first argument differently
+depending on whether it is a string or number internally.
+
+=item *
+
+C<open> with "<&" for the mode checks to see whether the third argument is
+a number, in determining whether to treat it as a file descriptor or a
+handle name.  Magical variables like C<$1> were always failing the numeric
+check and being treated as handle names.
+
+=item *
+
+C<warn>'s handling of magical variables (C<$1>, ties) has undergone several
+fixes.  FETCH is only called once now on a tied argument or a tied C<$@>
+[perl #97480].  Tied variables returning objects that stringify as "" are
+no longer ignored.  A tied C<$@> that happened to return a reference the
+I<previous> time is was used is no longer ignored.
+
 =back
 
 =head1 Known Problems
 =back
 
 =head1 Known Problems