Thanks for explanation. Looks like "'COW + p' leak by design now" to me, but maybe the case is too artificial for real life. I think pack has "You are responsible..." warning already.
use strict;
use Devel::Peek;
$Devel::Peek::pv_limit = 3; # useless for UTF8
use warnings;
use feature 'say';
say $^V;
sub mem { say qx( tasklist /nh /fi "PID eq $$" ) =~ m[(\S+ K)$] }
mem();
{
my $r = \ join '', 'a' .. 'z';
$$r x= 1e7;
my $s = $$r;
my $p = pack 'p', $s;
}
mem();
{
my $r = \ join '', 'a' .. 'z';
$$r x= 1e7;
my $s = $$r;
my $p = pack 'p', $s;
}
mem();
__END__
v5.32.1
7,836 K
7,888 K
7,888 K
v5.42.0
8,036 K
261,972 K
515,880 K