perldelta - what is new for perl v5.15.0
=for comment
-This has been completed up to 571f0e8.
+This has been completed up to 3ed94dc04.
=head1 DESCRIPTION
Previously, if one embeds Perl or uses XS and calls fork(3) from C, Perls
notion of C<$$> could go out of sync with what getpid() returns. By always
fetching the value of C<$$> via getpid(), this potential bug is eliminated.
-Code that depends on the caching behavior will break. As describe in L</Core
-Enhancements>, C<$$> is now writeable, but it will be reset during a fork.
+Code that depends on the caching behavior will break. As described in
+L</Core Enhancements>, C<$$> is now writable, but it will be reset during a
+fork.
=head1 Deprecations
=item *
+When called in pass-by-reference context, lvalue subroutines used to copy
+any read-only value that were returned. E.g., C< sub :lvalue { $] } >
+would not return C<$]>, but a copy of it.
+
+=item *
+
Assignment to C<keys> returned from an lvalue sub used not to work, but now
it does.
corruption or crashes. Now it produces an error message instead
[RT #8611].
+=item *
+
+Perl skips copying values returned from a subroutine if it thinks the value
+is not in use elsewhere. Due to faulty logic, this would happen with the
+result of C<delete>, C<shift> or C<splice>, even if the result was
+referenced elsewhere. So C<< \sub { delete $_[0] }->($x) >> would return a
+reference to C<$x>. This has been fixed [RT #81944].
+
=back
=head2 Additional fixes by ticket number