レキシカル変数の消滅タイミング
普通、レキシカル変数はレキシカルスコープを抜けると消滅します。
しかし、リファレンスの参照が残っていると消滅しない。
my $xxx;
{
my $data = ('aaa, bbb, ccc');
my $data2 = ('xxx, yyy, zzz');
print $data, "\n";
print $data2, "\n";
$xxx = \$data;
}
# $data2は消滅する。しかし、$dataは$xxxに参照があるので消滅しない。
print $$xxx, "\n"; #aaa, bbb, ccc を表示
$xxx = undef; #これで$dataは消滅し、ガベージコレクションの対象となるらしい。