我正在尝试用 perl 编写一个守护进程。现在这个守护进程有以下代码
sub b {
my $data;
if (some condition) {
$data->{"endsmeet"} = 1;
} else {
$data->{"endsmeet"} = 2;
}
my $newData = a($data);
}
sub a {
my ($data) = @_;
my %a = ();
my $newData = {
endsmeet => undef,
};
$a{"boo"} = $data->{"endsmeet"};
$newData->{"endsmeet"} = \%a;
return $newData;
}
我的问题来自上面,%a 的引用是否消失了,当 b 超出范围时它是否被清理?