-=head1 Selected Bug Fixes
-
-=over 4
-
-=item *
-
-RT #78266: The regex engine has been leaking memory when accessing
-named captures that weren't matched as part of a regex ever since 5.10
-when they were introduced, e.g. this would consume over a hundred MB of
-memory:
-
- for (1..10_000_000) {
- if ("foo" =~ /(foo|(?<capture>bar))?/) {
- my $capture = $+{capture}
- }
- }
- system "ps -o rss $$"'
-
-=item *
-
-A constant subroutine assigned to a glob whose name contains a null
-will no longer cause extra globs to pop into existence when the
-constant is referenced under its new name.
-
-=item *
-
-C<sort> was not treating C<sub {}> and C<sub {()}> as equivalent when
-such a sub was provided as the comparison routine. It used to croak on
-C<sub {()}>.
-
-=item *
-
-Subroutines from the C<autouse> namespace are once more exempt from
-redefinition warnings. This used to work in 5.005, but was broken in
-5.6 for most subroutines. For subs created via XS that redefine
-subroutines from the C<autouse> package, this stopped working in 5.10.
-
-=item *
-
-New XSUBs now produce redefinition warnings if they overwrite existing
-subs, as they did in 5.8.x. (The C<autouse> logic was reversed in
-5.10-14. Only subroutines from the C<autouse> namespace would warn when
-clobbered.)
-
-=item *
-
-Redefinition warnings triggered by the creation of XSUBs now respect
-Unicode glob names, instead of using the internal representation. This
-was missed in 5.15.4, partly because this warning was so hard to
-trigger. (See the previous item.)
-
-=item *
-
-C<newCONSTSUB> used to use compile-time warning hints, instead of
-run-time hints. The following code should never produce a redefinition
-warning, but it used to, if C<newCONSTSUB> redefine and existing
-subroutine:
-
- use warnings;
- BEGIN {
- no warnings;
- some_XS_function_that_calls_new_CONSTSUB();
- }
-
-=item *
-
-Redefinition warnings for constant subroutines are on by default (what
-are known as severe warnings in L<perldiag>). This was only the case
-when it was a glob assignment or declaration of a Perl subroutine that
-caused the warning. If the creation of XSUBs triggered the warning, it
-was not a default warning. This has been corrected.
-
-=item *
-
-The internal check to see whether a redefinition warning should occur
-used to emit "uninitialized" warnings in cases like this:
-
- use warnings "uninitialized";
- use constant {u=>undef,v=>undef};
- sub foo(){u} sub foo(){v}
-
-=item *
-
-A bug fix in Perl 5.14 introduced a new bug, causing "uninitialized"
-warnings to report the wrong variable if the operator in question has
-two operands and one is C<%{...}> or C<@{...}>. This has been fixed
-[perl #103766].
-
-=item *
-
-C<< version->new("version") >> and C<printf "%vd", "version"> no longer
-crash [perl #102586].
-
-=item *
-
-C<$tied =~ y/a/b/>, C<chop $tied> and C<chomp $tied> now call FETCH
-just once when $tied holds a reference.
-
-=item *
-
-Four-argument C<select> now always calls FETCH on tied arguments. It
-used to skip the call if the tied argument happened to hold C<undef> or
-a typeglob.
-
-=item *
-
-Four-argument C<select> no longer produces its "Non-string passed as
-bitmask" warning on tied or tainted variables that are strings.