To use this, enable the "bitwise" feature and disable the
"experimental::bitwise" warnings category. See L<perlop/Bitwise String
Operators> for details.
-L<[perl #123466]|https://rt.perl.org/Ticket/Display.html?id=123466>.
+L<[GH #14348]|https://github.com/Perl/perl5/issues/14348>.
=head2 New double-diamond operator
=head2 C<prototype> with no arguments
C<prototype()> with no arguments now infers C<$_>.
-L<[perl #123514]|https://rt.perl.org/Ticket/Display.html?id=123514>.
+L<[GH #14376]|https://github.com/Perl/perl5/issues/14376>.
=head2 New C<:const> subroutine attribute
The C<&> prototype character now accepts only anonymous subs (C<sub
{...}>), things beginning with C<\&>, or an explicit C<undef>. Formerly
it erroneously also allowed references to arrays, hashes, and lists.
-L<[perl #4539]|https://rt.perl.org/Ticket/Display.html?id=4539>.
-L<[perl #123062]|https://rt.perl.org/Ticket/Display.html?id=123062>.
-L<[perl #123062]|https://rt.perl.org/Ticket/Display.html?id=123475>.
+L<[GH #2776]|https://github.com/Perl/perl5/issues/2776>.
+L<[GH #14186]|https://github.com/Perl/perl5/issues/14186>.
+L<[GH #14353]|https://github.com/Perl/perl5/issues/14353>.
In addition, the C<\&> prototype was allowing subroutine calls, whereas
now it only allows subroutines: C<&foo> is still permitted as an argument,
while C<&foo()> and C<foo()> no longer are.
-L<[perl #77860]|https://rt.perl.org/Ticket/Display.html?id=77860>.
+L<[GH #10633]|https://github.com/Perl/perl5/issues/10633>.
=head2 C<use encoding> is now lexical
(or if there are no indices). Formerly, a list slice would return an empty
list if all indices fell outside the original list; now it returns a list
of C<undef> values in that case.
-L<[perl #114498]|https://rt.perl.org/Ticket/Display.html?id=114498>.
+L<[GH #12335]|https://github.com/Perl/perl5/issues/12335>.
=head2 C<\N{}> with a sequence of multiple spaces is now a fatal error
be affected by locale; only C<$!> and C<$^E> stringification. The
C<bytes> pragma causes the UTF-8 flag to not be set, just as in previous
Perl releases. This resolves
-L<[perl #112208]|https://rt.perl.org/Ticket/Display.html?id=112208>.
+L<[GH #12035]|https://github.com/Perl/perl5/issues/12035>.
=head2 Support for C<?PATTERN?> without explicit operator has been removed
Many internal functions have been refactored to improve performance and reduce
their memory footprints.
-L<[perl #121436]|https://rt.perl.org/Ticket/Display.html?id=121436>
-L<[perl #121906]|https://rt.perl.org/Ticket/Display.html?id=121906>
-L<[perl #121969]|https://rt.perl.org/Ticket/Display.html?id=121969>
+L<[GH #13659]|https://github.com/Perl/perl5/issues/13659>
+L<[GH #13856]|https://github.com/Perl/perl5/issues/13856>
+L<[GH #13874]|https://github.com/Perl/perl5/issues/13874>
=item *
C<-T> and C<-B> filetests will return sooner when an empty file is detected.
-L<[perl #121489]|https://rt.perl.org/Ticket/Display.html?id=121489>
+L<[GH #13686]|https://github.com/Perl/perl5/issues/13686>
=item *
Subroutines with an empty prototype and a body containing just C<undef> are now
eligible for inlining.
-L<[perl #122728]|https://rt.perl.org/Ticket/Display.html?id=122728>
+L<[GH #14077]|https://github.com/Perl/perl5/issues/14077>
=item *
This optimization does not currently apply to XSUBs or exported
subroutines, and method calls will undo it, since they cache things in
typeglobs.
-L<[perl #120441]|https://rt.perl.org/Ticket/Display.html?id=120441>
+L<[GH #13392]|https://github.com/Perl/perl5/issues/13392>
=item *
L<attributes> has been upgraded to version 0.27.
The usage of C<memEQs> in the XS has been corrected.
-L<[perl #122701]|https://rt.perl.org/Ticket/Display.html?id=122701>
+L<[GH #14072]|https://github.com/Perl/perl5/issues/14072>
Avoid reading beyond the end of a buffer. [perl #122629]
It now deparses C<our(I<LIST>)> and typed lexical (C<my Dog $spot>) correctly.
Deparse C<$#_> as that instead of as C<$#{_}>.
-L<[perl #123947]|https://rt.perl.org/Ticket/Display.html?id=123947>
+L<[GH #14545]|https://github.com/Perl/perl5/issues/14545>
BEGIN blocks at the end of the enclosing scope are now deparsed in the
right place. [perl #77452]
C<Carp::Heavy> now ignores version mismatches with Carp if Carp is newer
than 1.12, since C<Carp::Heavy>'s guts were merged into Carp at that
point.
-L<[perl #121574]|https://rt.perl.org/Ticket/Display.html?id=121574>
+L<[GH #13708]|https://github.com/Perl/perl5/issues/13708>
Carp now handles non-ASCII platforms better.
Changes to resolve Coverity issues.
XS dumps incorrectly stored the name of code references stored in a
GLOB.
-L<[perl #122070]|https://rt.perl.org/Ticket/Display.html?id=122070>
+L<[GH #13911]|https://github.com/Perl/perl5/issues/13911>
=item *
L<ExtUtils::CBuilder> has been upgraded to version 0.280221.
Fixes a regression on Android.
-L<[perl #122675]|https://rt.perl.org/Ticket/Display.html?id=122675>
+L<[GH #14064]|https://github.com/Perl/perl5/issues/14064>
=item *
Fixes a bug with C<maniread()>'s handling of quoted filenames and improves
C<manifind()> to follow symlinks.
-L<[perl #122415]|https://rt.perl.org/Ticket/Display.html?id=122415>
+L<[GH #14003]|https://github.com/Perl/perl5/issues/14003>
=item *
L<perl5db.pl> has been upgraded to version 1.49.
The debugger would cause an assertion failure.
-L<[perl #124127]|https://rt.perl.org/Ticket/Display.html?id=124127>
+L<[GH #14605]|https://github.com/Perl/perl5/issues/14605>
C<fork()> in the debugger under C<tmux> will now create a new window for
-the forked process. L<[perl
-#121333]|https://rt.perl.org/Ticket/Display.html?id=121333>
+the forked process. L<[GH #13602]|https://github.com/Perl/perl5/issues/13602>
The debugger now saves the current working directory on startup and
-restores it when you restart your program with C<R> or C<rerun>. L<[perl
-#121509]|https://rt.perl.org/Ticket/Display.html?id=121509>
+restores it when you restart your program with C<R> or C<rerun>.
+L<[GH #13691]|https://github.com/Perl/perl5/issues/13691>
=item *
C<sv_usepvn_flags> - fix documentation to mention the use of C<Newx> instead of
C<malloc>.
-L<[perl #121869]|https://rt.perl.org/Ticket/Display.html?id=121869>
+L<[GH #13835]|https://github.com/Perl/perl5/issues/13835>
=item *
C<-l> now notes that it will return false if symlinks aren't supported by the
file system.
-L<[perl #121523]|https://rt.perl.org/Ticket/Display.html?id=121523>
+L<[GH #13695]|https://github.com/Perl/perl5/issues/13695>
=item *
This has also been noted in L<perlport>.
-L<[perl #122046]|https://rt.perl.org/Ticket/Display.html?id=122046>
+L<[GH #13907]|https://github.com/Perl/perl5/issues/13907>
=back
=item *
Updated documentation for the C<test.valgrind> C<make> target.
-L<[perl #121431]|https://rt.perl.org/Ticket/Display.html?id=121431>
+L<[GH #13658]|https://github.com/Perl/perl5/issues/13658>
=item *
=item *
An ambiguity in the documentation of the C<...> statement has been corrected.
-L<[perl #122661]|https://rt.perl.org/Ticket/Display.html?id=122661>
+L<[GH #14054]|https://github.com/Perl/perl5/issues/14054>
=item *
future for I<e.g.> L<perlfunc/pack>.
The warnings category C<< redundant >> is new. See also
-L<[perl #121025]|https://rt.perl.org/Ticket/Display.html?id=121025>.
+L<[GH #13534]|https://github.com/Perl/perl5/issues/13534>.
=item *
This message has had '(did you forget to declare "my %s"?)' appended to it, to
make it more helpful to new Perl programmers.
-L<[perl #121638]|https://rt.perl.org/Ticket/Display.html?id=121638>
+L<[GH #13732]|https://github.com/Perl/perl5/issues/13732>
=item *
Compile-time checking of constant dereferencing (I<e.g.>, C<< my_constant->() >>)
has been removed, since it was not taking overloading into account.
-L<[perl #69456]|https://rt.perl.org/Ticket/Display.html?id=69456>
-L<[perl #122607]|https://rt.perl.org/Ticket/Display.html?id=122607>
+L<[GH #9891]|https://github.com/Perl/perl5/issues/9891>
+L<[GH #14044]|https://github.com/Perl/perl5/issues/14044>
=back
F<h2ph> now handles hexadecimal constants in the compiler's predefined
macro definitions, as visible in C<$Config{cppsymbols}>.
-L<[perl #123784]|https://rt.perl.org/Ticket/Display.html?id=123784>.
+L<[GH #14491]|https://github.com/Perl/perl5/issues/14491>.
=back
=item *
F<Configure> with C<-Dmksymlinks> should now be faster.
-L<[perl #122002]|https://rt.perl.org/Ticket/Display.html?id=122002>.
+L<[GH #13890]|https://github.com/Perl/perl5/issues/13890>.
=item *
See L<perlhacktips/valgrind> for more information.
-L<[perl #121431]|https://rt.perl.org/Ticket/Display.html?id=121431>
+L<[GH #13658]|https://github.com/Perl/perl5/issues/13658>
=item *
=item IRIX and Tru64 platforms are working again.
Some C<make test> failures remain:
-L<[perl #123977]|https://rt.perl.org/Ticket/Display.html?id=123977>
-and L<[perl #125298]|https://rt.perl.org/Ticket/Display.html?id=125298>
-for IRIX; L<[perl #124212]|https://rt.perl.org/Ticket/Display.html?id=124212>,
+L<[GH #14557]|https://github.com/Perl/perl5/issues/14557>
+and L<[GH #14727]|https://github.com/Perl/perl5/issues/14727>
+for IRIX; L<[GH #14629]|https://github.com/Perl/perl5/issues/14629>,
L<[cpan #99605]|https://rt.cpan.org/Public/Bug/Display.html?id=99605>, and
L<[cpan #104836]|https://rt.cpan.org/Ticket/Display.html?id=104836> for Tru64.
F<miniperl.exe> is now built with C<-fno-strict-aliasing>, allowing 64-bit
builds to complete on GCC 4.8.
-L<[perl #123976]|https://rt.perl.org/Ticket/Display.html?id=123976>
+L<[GH #14556]|https://github.com/Perl/perl5/issues/14556>
=item *
C<nmake minitest> now works on Win32. Due to dependency issues you
need to build C<nmake test-prep> first, and a small number of the
tests fail.
-L<[perl #123394]|https://rt.perl.org/Ticket/Display.html?id=123394>
+L<[GH #14318]|https://github.com/Perl/perl5/issues/14318>
=item *
The list form of piped open has been implemented for Win32. Note: unlike
C<system LIST> this does not fall back to the shell.
-L<[perl #121159]|https://rt.perl.org/Ticket/Display.html?id=121159>
+L<[GH #13574]|https://github.com/Perl/perl5/issues/13574>
=item *
In the experimental C<:win32> layer, a crash in C<open> was fixed. Also
opening F</dev/null> (which works under Win32 Perl's default C<:unix>
layer) was implemented for C<:win32>.
-L<[perl #122224]|https://rt.perl.org/Ticket/Display.html?id=122224>
+L<[GH #13968]|https://github.com/Perl/perl5/issues/13968>
=item *
the tradeoff is worth it and would prefer that users who need the speed
specifically ask for it.
-L<[perl #122000]|https://rt.perl.org/Ticket/Display.html?id=122000>.
+L<[GH #13888]|https://github.com/Perl/perl5/issues/13888>.
=item Solaris
Builds on Solaris 10 with C<-Dusedtrace> would fail early since make
didn't follow implied dependencies to build C<perldtrace.h>. Added an
explicit dependency to C<depend>.
-L<[perl #120120]|https://rt.perl.org/Ticket/Display.html?id=120120>
+L<[GH #13334]|https://github.com/Perl/perl5/issues/13334>
=item *
The C<sv_magic()> function no longer forbids "ext" magic on read-only
values. After all, perl can't know whether the custom magic will modify
the SV or not.
-L<[perl #123103]|https://rt.perl.org/Ticket/Display.html?id=123103>.
+L<[GH #14202]|https://github.com/Perl/perl5/issues/14202>.
=item *
testing their values in C<pp_dbstate()>. This prevents perl from
recursing infinitely if an overloaded object is assigned to any of those
variables.
-L<[perl #122445]|https://rt.perl.org/Ticket/Display.html?id=122445>.
+L<[GH #14013]|https://github.com/Perl/perl5/issues/14013>.
=item *
returns an SV containing the name of the subroutine, for use in
diagnostics.
-L<[perl #116735]|https://rt.perl.org/Ticket/Display.html?id=116735>
-L<[perl #120441]|https://rt.perl.org/Ticket/Display.html?id=120441>
+L<[GH #12767]|https://github.com/Perl/perl5/issues/12767>
+L<[GH #13392]|https://github.com/Perl/perl5/issues/13392>
=item *
passed will be acceptable to C<cv_name()>. C<cv_set_call_checker()>
guarantees there will be a GV, but it may have to create one on the fly,
which is inefficient.
-L<[perl #116735]|https://rt.perl.org/Ticket/Display.html?id=116735>
+L<[GH #12767]|https://github.com/Perl/perl5/issues/12767>
=item *
boolean, C<CvHASGV> has been added, which will return true for CVs that
notionally have GVs, but without reifying the GV. C<CvGV> also returns a GV
now for lexical subs.
-L<[perl #120441]|https://rt.perl.org/Ticket/Display.html?id=120441>
+L<[GH #13392]|https://github.com/Perl/perl5/issues/13392>
=item *
The C<PADNAME> and C<PADNAMELIST> types are now separate types, and no
longer simply aliases for SV and AV.
-L<[perl #123223]|https://rt.perl.org/Ticket/Display.html?id=123223>.
+L<[GH #14250]|https://github.com/Perl/perl5/issues/14250>.
=item *
double builds. Under some build options on GCC 4.8 and later, they used
to either overwrite the zero-initialized padding, or bypass the
initialized buffer entirely. This caused F<op/pack.t> to fail.
-L<[perl #123971]|https://rt.perl.org/Ticket/Display.html?id=123971>
+L<[GH #14554]|https://github.com/Perl/perl5/issues/14554>
=item *
Extending an array cloned from a parent thread could result in "Modification of
a read-only value attempted" errors when attempting to modify the new elements.
-L<[perl #124127]|https://rt.perl.org/Ticket/Display.html?id=124127>
+L<[GH #14605]|https://github.com/Perl/perl5/issues/14605>
=item *
An assertion failure and subsequent crash with C<< *x=<y> >> has been fixed.
-L<[perl #123790]|https://rt.perl.org/Ticket/Display.html?id=123790>
+L<[GH #14493]|https://github.com/Perl/perl5/issues/14493>
=item *
A possible crashing/looping bug related to compiling lexical subs has been
fixed.
-L<[perl #124099]|https://rt.perl.org/Ticket/Display.html?id=124099>
+L<[GH #14596]|https://github.com/Perl/perl5/issues/14596>
=item *
UTF-8 now works correctly in function names, in unquoted HERE-document
terminators, and in variable names used as array indexes.
-L<[perl #124113]|https://rt.perl.org/Ticket/Display.html?id=124113>
+L<[GH #14601]|https://github.com/Perl/perl5/issues/14601>
=item *
Repeated global pattern matches in scalar context on large tainted strings were
exponentially slow depending on the current match position in the string.
-L<[perl #123202]|https://rt.perl.org/Ticket/Display.html?id=123202>
+L<[GH #14238]|https://github.com/Perl/perl5/issues/14238>
=item *
Various crashes due to the parser getting confused by syntax errors have been
fixed.
-L<[perl #123801]|https://rt.perl.org/Ticket/Display.html?id=123801>
-L<[perl #123802]|https://rt.perl.org/Ticket/Display.html?id=123802>
-L<[perl #123955]|https://rt.perl.org/Ticket/Display.html?id=123955>
-L<[perl #123995]|https://rt.perl.org/Ticket/Display.html?id=123995>
+L<[GH #14496]|https://github.com/Perl/perl5/issues/14496>
+L<[GH #14497]|https://github.com/Perl/perl5/issues/14497>
+L<[GH #14548]|https://github.com/Perl/perl5/issues/14548>
+L<[GH #14564]|https://github.com/Perl/perl5/issues/14564>
=item *
C<split> in the scope of lexical C<$_> has been fixed not to fail assertions.
-L<[perl #123763]|https://rt.perl.org/Ticket/Display.html?id=123763>
+L<[GH #14483]|https://github.com/Perl/perl5/issues/14483>
=item *
C<my $x : attr> syntax inside various list operators no longer fails
assertions.
-L<[perl #123817]|https://rt.perl.org/Ticket/Display.html?id=123817>
+L<[GH #14500]|https://github.com/Perl/perl5/issues/14500>
=item *
An C<@> sign in quotes followed by a non-ASCII digit (which is not a valid
identifier) would cause the parser to crash, instead of simply trying the
C<@> as literal. This has been fixed.
-L<[perl #123963]|https://rt.perl.org/Ticket/Display.html?id=123963>
+L<[GH #14553]|https://github.com/Perl/perl5/issues/14553>
=item *
C<*bar::=*foo::=*glob_with_hash> has been crashing since Perl 5.14, but no
longer does.
-L<[perl #123847]|https://rt.perl.org/Ticket/Display.html?id=123847>
+L<[GH #14512]|https://github.com/Perl/perl5/issues/14512>
=item *
C<foreach> in scalar context was not pushing an item on to the stack, resulting
in bugs. (S<C<print 4, scalar do { foreach(@x){} } + 1>> would print 5.)
It has been fixed to return C<undef>.
-L<[perl #124004]|https://rt.perl.org/Ticket/Display.html?id=124004>
+L<[GH #14569]|https://github.com/Perl/perl5/issues/14569>
=item *
Several cases of data used to store environment variable contents in core C
code being potentially overwritten before being used have been fixed.
-L<[perl #123748]|https://rt.perl.org/Ticket/Display.html?id=123748>
+L<[GH #14476]|https://github.com/Perl/perl5/issues/14476>
=item *
Some patterns starting with C</.*..../> matched against long strings have
been slow since v5.8, and some of the form C</.*..../i> have been slow
since v5.18. They are now all fast again.
-L<[perl #123743]|https://rt.perl.org/Ticket/Display.html?id=123743>.
+L<[GH #14475]|https://github.com/Perl/perl5/issues/14475>.
=item *
array, for example, perl would produce a runtime error and not set
C<PL_rs>, but Perl code that checked C<$/> would see the array
reference.
-L<[perl #123218]|https://rt.perl.org/Ticket/Display.html?id=123218>.
+L<[GH #14245]|https://github.com/Perl/perl5/issues/14245>.
=item *
Perl 5.14.0 introduced a bug whereby S<C<eval { LABEL: }>> would crash. This
has been fixed.
-L<[perl #123652]|https://rt.perl.org/Ticket/Display.html?id=123652>.
+L<[GH #14438]|https://github.com/Perl/perl5/issues/14438>.
=item *
Various crashes due to the parser getting confused by syntax errors have
been fixed.
-L<[perl #123617]|https://rt.perl.org/Ticket/Display.html?id=123617>.
-L<[perl #123737]|https://rt.perl.org/Ticket/Display.html?id=123737>.
-L<[perl #123753]|https://rt.perl.org/Ticket/Display.html?id=123753>.
-L<[perl #123677]|https://rt.perl.org/Ticket/Display.html?id=123677>.
+L<[GH #14421]|https://github.com/Perl/perl5/issues/14421>.
+L<[GH #14472]|https://github.com/Perl/perl5/issues/14472>.
+L<[GH #14480]|https://github.com/Perl/perl5/issues/14480>.
+L<[GH #14447]|https://github.com/Perl/perl5/issues/14447>.
=item *
though it came immediately after the opening bracket. Some invalid code
consequently would parse and run, but some code caused crashes, so this is
now disallowed.
-L<[perl #123712]|https://rt.perl.org/Ticket/Display.html?id=123712>.
+L<[GH #14462]|https://github.com/Perl/perl5/issues/14462>.
=item *
Fix argument underflow for C<pack>.
-L<[perl #123874]|https://rt.perl.org/Ticket/Display.html?id=123874>.
+L<[GH #14525]|https://github.com/Perl/perl5/issues/14525>.
=item *
=item *
C<stat -t> is now no longer treated as stackable, just like C<-t stat>.
-L<[perl #123816]|https://rt.perl.org/Ticket/Display.html?id=123816>.
+L<[GH #14499]|https://github.com/Perl/perl5/issues/14499>.
=item *
with C</i> while taking into account the current POSIX locale (which usually
means they have to be compiled within the scope of C<S<use locale>>),
and there must be a string of at least 128 consecutive bytes to match.
-L<[perl #123539]|https://rt.perl.org/Ticket/Display.html?id=123539>.
+L<[GH #14389]|https://github.com/Perl/perl5/issues/14389>.
=item *
C<s///g> now works on very long strings (where there are more than 2
billion iterations) instead of dying with 'Substitution loop'.
-L<[perl #103260]|https://rt.perl.org/Ticket/Display.html?id=103260>.
-L<[perl #123071]|https://rt.perl.org/Ticket/Display.html?id=123071>.
+L<[GH #11742]|https://github.com/Perl/perl5/issues/11742>.
+L<[GH #14190]|https://github.com/Perl/perl5/issues/14190>.
=item *
C<gmtime> no longer crashes with not-a-number values.
-L<[perl #123495]|https://rt.perl.org/Ticket/Display.html?id=123495>.
+L<[GH #14365]|https://github.com/Perl/perl5/issues/14365>.
=item *
C<prototype()> with no arguments used to read the previous item on the
stack, so S<C<print "foo", prototype()>> would print foo's prototype.
It has been fixed to infer C<$_> instead.
-L<[perl #123514]|https://rt.perl.org/Ticket/Display.html?id=123514>.
+L<[GH #14376]|https://github.com/Perl/perl5/issues/14376>.
=item *
When trying to emit warnings, perl's default debugger (F<perl5db.pl>) was
sometimes giving 'Undefined subroutine &DB::db_warn called' instead. This
bug, which started to occur in Perl 5.18, has been fixed.
-L<[perl #123553]|https://rt.perl.org/Ticket/Display.html?id=123553>.
+L<[GH #14400]|https://github.com/Perl/perl5/issues/14400>.
=item *
Certain syntax errors in substitutions, such as C<< s/${<>{})// >>, would
crash, and had done so since Perl 5.10. (In some cases the crash did not
start happening till 5.16.) The crash has, of course, been fixed.
-L<[perl #123542]|https://rt.perl.org/Ticket/Display.html?id=123542>.
+L<[GH #14391]|https://github.com/Perl/perl5/issues/14391>.
=item *
overflow since the new output buffer size was not correctly handled by
C<SvGROW()>. An expression like this now properly produces a memory wrap
panic.
-L<[perl #123554]|https://rt.perl.org/Ticket/Display.html?id=123554>.
+L<[GH #14401]|https://github.com/Perl/perl5/issues/14401>.
=item *
C<pp_formline()> didn't set the pointer used to mark the chop position,
which led to the C<FF_MORE> case crashing with a segmentation fault.
This has been fixed.
-L<[perl #123538]|https://rt.perl.org/Ticket/Display.html?id=123538>.
+L<[GH #14388]|https://github.com/Perl/perl5/issues/14388>.
=item *
A possible buffer overrun and crash when parsing a literal pattern during
regular expression compilation has been fixed.
-L<[perl #123604]|https://rt.perl.org/Ticket/Display.html?id=123604>.
+L<[GH #14416]|https://github.com/Perl/perl5/issues/14416>.
=item *
C<fchmod()> and C<futimes()> now set C<$!> when they fail due to being
passed a closed file handle.
-L<[perl #122703]|https://rt.perl.org/Ticket/Display.html?id=122703>.
+L<[GH #14073]|https://github.com/Perl/perl5/issues/14073>.
=item *
C<op_free()> and C<scalarvoid()> no longer crash due to a stack overflow
when freeing a deeply recursive op tree.
-L<[perl #108276]|https://rt.perl.org/Ticket/Display.html?id=108276>.
+L<[GH #11866]|https://github.com/Perl/perl5/issues/11866>.
=item *
In Perl 5.20.0, C<$^N> accidentally had the internal UTF-8 flag turned off
if accessed from a code block within a regular expression, effectively
UTF-8-encoding the value. This has been fixed.
-L<[perl #123135]|https://rt.perl.org/Ticket/Display.html?id=123135>.
+L<[GH #14211]|https://github.com/Perl/perl5/issues/14211>.
=item *
C<else{foo()}> with no space before C<foo> is now better at assigning the
right line number to that statement.
-L<[perl #122695]|https://rt.perl.org/Ticket/Display.html?id=122695>.
+L<[GH #14070]|https://github.com/Perl/perl5/issues/14070>.
=item *
assignment from being used in lvalue context. So
C<(@a=split//,"foo")=bar()> was an error. (This bug probably goes back to
Perl 3, when the optimisation was added.) It has now been fixed.
-L<[perl #123057]|https://rt.perl.org/Ticket/Display.html?id=123057>.
+L<[GH #14183]|https://github.com/Perl/perl5/issues/14183>.
=item *
signature (which is still an experimental feature), the resulting error
messages now give the file and line number of the caller, not of the
called subroutine.
-L<[perl #121374]|https://rt.perl.org/Ticket/Display.html?id=121374>.
+L<[GH #13643]|https://github.com/Perl/perl5/issues/13643>.
=item *
a separate state for each recursion level (the number of times the
enclosing sub was called recursively), contrary to the documentation. Now
each closure has one internal state for each flip-flop.
-L<[perl #122829]|https://rt.perl.org/Ticket/Display.html?id=122829>.
+L<[GH #14110]|https://github.com/Perl/perl5/issues/14110>.
=item *
The flip-flop operator (C<..> in scalar context) would return the same
scalar each time, unless the containing subroutine was called recursively.
Now it always returns a new scalar.
-L<[perl #122829]|https://rt.perl.org/Ticket/Display.html?id=122829>.
+L<[GH #14110]|https://github.com/Perl/perl5/issues/14110>.
=item *
permitted as the first thing in a C<map> or C<grep> block, the block after
C<print> or C<say> (or other functions) returning a handle, and within
C<${...}>, C<@{...}>, etc.
-L<[perl #122782]|https://rt.perl.org/Ticket/Display.html?id=122782>.
+L<[GH #14088]|https://github.com/Perl/perl5/issues/14088>.
=item *
C<(...) x ...> in scalar context used to corrupt the stack if one operand
was an object with "x" overloading, causing erratic behavior.
-L<[perl #121827]|https://rt.perl.org/Ticket/Display.html?id=121827>.
+L<[GH #13811]|https://github.com/Perl/perl5/issues/13811>.
=item *
C<index()> and C<rindex()> no longer crash when used on strings over 2GB in
size.
-L<[perl #121562]|https://rt.perl.org/Ticket/Display.html?id=121562>.
+L<[GH #13700]|https://github.com/Perl/perl5/issues/13700>.
=item *
C<< s///e >> on tainted UTF-8 strings corrupted C<< pos() >>. This bug,
introduced in 5.20, is now fixed.
-L<[perl #122148]|https://rt.perl.org/Ticket/Display.html?id=122148>.
+L<[GH #13948]|https://github.com/Perl/perl5/issues/13948>.
=item *
A non-word boundary in a regular expression (C<< \B >>) did not always
match the end of the string; in particular C<< q{} =~ /\B/ >> did not
match. This bug, introduced in perl 5.14, is now fixed.
-L<[perl #122090]|https://rt.perl.org/Ticket/Display.html?id=122090>.
+L<[GH #13917]|https://github.com/Perl/perl5/issues/13917>.
=item *
C<< " P" =~ /(?=.*P)P/ >> should match, but did not. This is now fixed.
-L<[perl #122171]|https://rt.perl.org/Ticket/Display.html?id=122171>.
+L<[GH #13954]|https://github.com/Perl/perl5/issues/13954>.
=item *
C<BEGIN> subroutine definition, which would produce a "Subroutine
BEGIN redefined" warning on the next use of C<use>, or other C<BEGIN>
block.
-L<[perl #122107]|https://rt.perl.org/Ticket/Display.html?id=122107>.
+L<[GH #13926]|https://github.com/Perl/perl5/issues/13926>.
=item *
C<method { BLOCK } ARGS> syntax now correctly parses the arguments if they
begin with an opening brace.
-L<[perl #46947]|https://rt.perl.org/Ticket/Display.html?id=46947>.
+L<[GH #9085]|https://github.com/Perl/perl5/issues/9085>.
=item *
This is problematic when parsing version strings if the locale's numeric
separator has been changed. Version parsing has been patched to ensure
it handles the locales correctly.
-L<[perl #121930]|https://rt.perl.org/Ticket/Display.html?id=121930>.
+L<[GH #13863]|https://github.com/Perl/perl5/issues/13863>.
=item *
A bug has been fixed where zero-length assertions and code blocks inside of a
regex could cause C<pos> to see an incorrect value.
-L<[perl #122460]|https://rt.perl.org/Ticket/Display.html?id=122460>.
+L<[GH #14016]|https://github.com/Perl/perl5/issues/14016>.
=item *
Dereferencing of constants now works correctly for typeglob constants. Previously
the glob was stringified and its name looked up. Now the glob itself is used.
-L<[perl #69456]|https://rt.perl.org/Ticket/Display.html?id=69456>
+L<[GH #9891]|https://github.com/Perl/perl5/issues/9891>
=item *
S<C<undef $reference>> now frees the referent immediately, instead of hanging on
to it until the next statement.
-L<[perl #122556]|https://rt.perl.org/Ticket/Display.html?id=122556>
+L<[GH #14032]|https://github.com/Perl/perl5/issues/14032>
=item *
Tainted constants evaluated at compile time no longer cause unrelated
statements to become tainted.
-L<[perl #122669]|https://rt.perl.org/Ticket/Display.html?id=122669>
+L<[GH #14059]|https://github.com/Perl/perl5/issues/14059>
=item *
The parser no longer gets confused by C<\U=> within a double-quoted string. It
used to produce a syntax error, but now compiles it correctly.
-L<[perl #80368]|https://rt.perl.org/Ticket/Display.html?id=80368>
+L<[GH #10882]|https://github.com/Perl/perl5/issues/10882>
=item *
expression pattern that contains a single ASCII lowercase letter did not
match its uppercase counterpart. That has been fixed in both 5.20.1 and
5.22.0.
-L<[perl #122655]|https://rt.perl.org/Ticket/Display.html?id=122655>
+L<[GH #14051]|https://github.com/Perl/perl5/issues/14051>
=item *
Loading Unicode tables during a regular expression match could cause assertion
failures under debugging builds if the previous match used the very same
regular expression.
-L<[perl #122747]|https://rt.perl.org/Ticket/Display.html?id=122747>
+L<[GH #14081]|https://github.com/Perl/perl5/issues/14081>
=item *
Aliasing (I<e.g.>, via S<C<*x = *y>>) could confuse list assignments that mention the
two names for the same variable on either side, causing wrong values to be
assigned.
-L<[perl #15667]|https://rt.perl.org/Ticket/Display.html?id=15667>
+L<[GH #5788]|https://github.com/Perl/perl5/issues/5788>
=item *
which it should not. This has been fixed. (Note, however, that S<C<split /^x/>>
does not behave like S<C<split /^x/m>>, which is also considered to be a bug and
will be fixed in a future version.)
-L<[perl #122761]|https://rt.perl.org/Ticket/Display.html?id=122761>
+L<[GH #14086]|https://github.com/Perl/perl5/issues/14086>
=item *
An assertion failure when parsing C<sort> with debugging enabled has been
fixed.
-L<[perl #122771]|https://rt.perl.org/Ticket/Display.html?id=122771>.
+L<[GH #14087]|https://github.com/Perl/perl5/issues/14087>.
=item *
=item *
Fatal warnings no longer prevent the output of syntax errors.
-L<[perl #122966]|https://rt.perl.org/Ticket/Display.html?id=122966>.
+L<[GH #14155]|https://github.com/Perl/perl5/issues/14155>.
=item *
Fixed the issue that caused C<< make distclean >> to incorrectly leave some
files behind.
-L<[perl #122820]|https://rt.perl.org/Ticket/Display.html?id=122820>.
+L<[GH #14108]|https://github.com/Perl/perl5/issues/14108>.
=item *
AIX now sets the length in C<< getsockopt >> correctly.
-L<[perl #120835]|https://rt.perl.org/Ticket/Display.html?id=120835>.
+L<[GH #13484]|https://github.com/Perl/perl5/issues/13484>.
L<[cpan #91183]|https://rt.cpan.org/Ticket/Display.html?id=91183>.
L<[cpan #85570]|https://rt.cpan.org/Ticket/Display.html?id=85570>.
The optimization phase of a regexp compilation could run "forever" and
exhaust all memory under certain circumstances; now fixed.
-L<[perl #122283]|https://rt.perl.org/Ticket/Display.html?id=122283>.
+L<[GH #13984]|https://github.com/Perl/perl5/issues/13984>.
=item *
The test script F<< t/op/crypt.t >> now uses the SHA-256 algorithm if the
default one is disabled, rather than giving failures.
-L<[perl #121591]|https://rt.perl.org/Ticket/Display.html?id=121591>.
+L<[GH #13715]|https://github.com/Perl/perl5/issues/13715>.
=item *
Fixed an off-by-one error when setting the size of a shared array.
-L<[perl #122950]|https://rt.perl.org/Ticket/Display.html?id=122950>.
+L<[GH #14151]|https://github.com/Perl/perl5/issues/14151>.
=item *
sub foo { () = ($a, my $b, ($c, do { while(1) {} })) }
The bug was introduced in 5.20.0
-L<[perl #122995]|https://rt.perl.org/Ticket/Display.html?id=122995>.
+L<[GH #14165]|https://github.com/Perl/perl5/issues/14165>.
=item *
forked, restoring the original value in the child pseudo-process caused
memory corruption and a crash in the child pseudo-process (and therefore the
OS process).
-L<[perl #40565]|https://rt.perl.org/Ticket/Display.html?id=40565>.
+L<[GH #8641]|https://github.com/Perl/perl5/issues/8641>.
=item *
Calling C<write> on a format with a C<^**> field could produce a panic
in C<sv_chop()> if there were insufficient arguments or if the variable
used to fill the field was empty.
-L<[perl #123245]|https://rt.perl.org/Ticket/Display.html?id=123245>.
+L<[GH #14255]|https://github.com/Perl/perl5/issues/14255>.
=item *
The C<\@> subroutine prototype no longer flattens parenthesized arrays
(taking a reference to each element), but takes a reference to the array
itself.
-L<[perl #47363]|https://rt.perl.org/Ticket/Display.html?id=47363>.
+L<[GH #9111]|https://github.com/Perl/perl5/issues/9111>.
=item *
stack, causing lists outside the block to lose elements or have elements
overwritten. This could happen with C<map { for(...){...} } ...> and with
lists containing C<do { for(...){...} }>.
-L<[perl #123286]|https://rt.perl.org/Ticket/Display.html?id=123286>.
+L<[GH #14269]|https://github.com/Perl/perl5/issues/14269>.
=item *
=item *
C<qr/@array(?{block})/> no longer dies with "Bizarre copy of ARRAY".
-L<[perl #123344]|https://rt.perl.org/Ticket/Display.html?id=123344>.
+L<[GH #14292]|https://github.com/Perl/perl5/issues/14292>.
=item *
keyword, started chopping off the last 6 characters and treating the result
as a sort sub name. The previous behavior of treating C<CORE::fake> as a
sort sub name has been restored.
-L<[perl #123410]|https://rt.perl.org/Ticket/Display.html?id=123410>.
+L<[GH #14323]|https://github.com/Perl/perl5/issues/14323>.
=item *
C<(...) x ...> in void context now applies scalar context to the left-hand
argument, instead of the context the current sub was called in.
-L<[perl #123020]|https://rt.perl.org/Ticket/Display.html?id=123020>.
+L<[GH #14174]|https://github.com/Perl/perl5/issues/14174>.
=back
C<pack>-ing a NaN on a perl compiled with Visual C 6 does not behave properly,
leading to a test failure in F<t/op/infnan.t>.
-L<[perl 125203]|https://rt.perl.org/Ticket/Display.html?id=125203>
+L<[GH #14705]|https://github.com/Perl/perl5/issues/14705>
=item *