=head1 DESCRIPTION
-This document describes differences between the 5.15.1 release and
-the 5.15.0 release.
+This document describes differences between the 5.15.0 release and
+the 5.15.1 release.
If you are upgrading from an earlier release such as 5.14.0, first read
L<perl5150delta>, which describes differences between 5.14.0 and
=item *
-The short-circuiting operators C<&&>, C<||>, and C<//> are now
-considerably faster in the short-circuiting case due to reduced
-OP-tree traversal.
+The short-circuiting operators C<&&>, C<||>, and C<//>, when chained
+(such as C<$a || $b || $c>), are now considerably faster to short-circuit,
+due to reduced optree traversal.
=item *
-The implementation of C<s///r> makes one less copy of the scalar's value.
+The implementation of C<s///r> makes one fewer copy of the scalar's value.
=item *
=item *
-L<CGI> has been upgraded from version 3.54 to version 3.55
+L<CGI> has been upgraded from version 3.54 to version 3.55.
-[THINGS THAT MAY BREAK YOUR CODE]
+Things that may break your code:
C<url()> was fixed to return C<PATH_INFO> when it is explicitly requested
with either the path=>1 or path_info=>1 flag.
If your code is running under mod_rewrite (or compatible) and you are calling C<self_url()> or
-you are calling C<url()> and passing path_info=>1, These methods will actually be
+you are calling C<url()> and passing C<< path_info=>1 >>, These methods will actually be
returning C<PATH_INFO> now, as you have explicitly requested, or has C<self_url()>
has requested on your behalf.
=item *
+L<CPANPLUS> has been upgraded from version 0.9105 to version 0.9108
+
+=item *
+
L<Compress::Raw::Bzip2> has been upgraded from version 2.035 to version 2.037
=item *
=item *
-L<CPANPLUS> has been upgraded from version 0.9105 to version 0.9108
-
-=item *
-
L<Cwd> has been upgraded from version 3.36 to 3.37, to address an
incompatibility with the EPIC debugger.
=item *
-L<diagnostics> has been upgraded from version 1.22 to 1.23.
-
-It now knows how to find descriptions for diagnostic messages ending with a
-dot, instead getting confused by it.
-
-=item *
-
L<ExtUtils::MakeMaker> has been upgraded from version 6.57_05 to version 6.58
=item *
=item *
-L<attributes> has been upgraded from version 0.14 to 0.15, as part of the
-lvalue attribute warnings fix. See L</Selected Bug Fixes>, below.
-
-=item *
-
L<Math::BigInt::FastCalc> has been upgraded from version 0.28 to version 0.29.
The XS code is now compiled with C<PERL_NO_GET_CONTEXT>, which will aid
=item *
+L<attributes> has been upgraded from version 0.14 to 0.15, as part of the
+lvalue attribute warnings fix. See L</Selected Bug Fixes>, below.
+
+=item *
+
+L<diagnostics> has been upgraded from version 1.22 to 1.23.
+
+It now knows how to find descriptions for diagnostic messages ending with a
+dot, instead getting confused by it.
+
+=item *
+
L<threads> has been upgraded from version 1.83 to 1.84
An unused variable was removed from the XS code.
Perl used to bundle a handful of library files that predate Perl 5. Most of
these files, which have been deprecated since version 5.14.0, have now been
removed. If your code still relies on these libraries, you can install them
-again from C<Perl4::CoreLibs> on CPAN.
+again from L<Perl4::CoreLibs> on CPAN.
=back
=item *
-=for comment
-Not necessary for perl5160delta
-
The remaining discrepancies between explicit and implicit return from
lvalue subroutines have been resolved. They mainly involved which error
message to display when a read-only value is returned in lvalue context.
=item *
-=for comment
-Not necessary for perl5160delta
-
Explicitly returning a tied C<my> variable from an lvalue subroutine in
list lvalue context used to clear the variable before the assignment could
happen. This is something that was missed when explicit return was made to
=item *
-=for comment
-Not necessary for perl5160delta
-
A minor memory leak, introduced in 5.15.0, has been fixed. It would occur
when a hash is freed that has had its current iterator deleted
[perl #93454].
=item *
A problem with context propagation when a C<do> block is an argument to
-C<return> has been fixed. It used to cause undefined to be returned in
+C<return> has been fixed. It used to cause C<undef> to be returned in
some cases of a C<return> inside an C<if> block which itself is followed by
another C<return>.