This notably fixes:
[perl #62484] B::Deparse hangs on called subs with $;_ prototype
# An unbackslashed @ or % gobbles up the rest of the args
1 while $proto =~ s/(?<!\\)([@%])[^\]]+$/$1/;
while ($proto) {
- $proto =~ s/^(\\?[\$\@&%*]|\\\[[\$\@&%*]+\]|;)//;
+ $proto =~ s/^(\\?[\$\@&%*_]|\\\[[\$\@&%*]+\]|;)//;
my $chr = $1;
if ($chr eq "") {
return "&" if @args;
} else {
$arg = shift @args;
last unless $arg;
- if ($chr eq "\$") {
+ if ($chr eq "\$" || $chr eq "_") {
if (want_scalar $arg) {
push @reals, $self->deparse($arg, 6);
} else {