|laziness, impatience, and hubris|
I investigate :)
perldoc -v "%+"
tells me %LAST_PAREN_MATCH is implemented using Tie::Hash::NamedCapture, so a hop skip and a jump to http://perl5.git.perl.org/perl.git/history/HEAD:/ext/Tie-Hash-NamedCapture to see what changed, a quick correlation with corelist, but nothing changed there since v5.13.11
The history did mention moving the implementation of %+ into XS, so checking perl5160delta for XS I see a bunch of changes, but nothing I think could cause this behaviour
I will note that trying to Dumper \%+ or \%- outside of get_words_* returns empty -- so its definitely scope related (perhaps pad related)
Next thing I checked is "capture", but #78266: Memory leak with named regexp captures doesn't seem related
Next I notice Tied Variables but nothing jumps out
I don't think this is documented anywhere, and I suspect it hasn't been discovered and fixed intentionally -- you should submit (perlbug) the test case for inclusion into http://perl5.git.perl.org/perl.git/blob/HEAD:/ext/Tie-Hash-NamedCapture/t/tiehash.t
update: Forgot to search for %+, I found #105024: UNIVERSAL::AUTOLOAD breaks named captures/%-/%+, which could be responsible for fixing this, but Devel::Trace doesn't show any autoload / UNIVERSAL::AUTOLOAD
In reply to Re: Bizarro %+ hash slice bug in Perl 5.10 to 5.14.
by Anonymous Monk