如果我将哈希引用定义为:
my %hash1=(
"a" => 1,
"b" => 2,
"c" => {
"d" => 4,
"e" => 5
}
);
my $r_hash1 = \%hash1;
将使用:
$r_hash1->{c}=();
清除 %hash1{c} 中的键以供重用是干净的吗?
如果是这样,我也想知道我是否有:
my %hash1=(
"a" => 1,
"b" => 2
);
my %hash2=(
"d" => 4,
"e" => 5
);
my $r_hash1 = \%hash1;
my $r_hash2 = \%hash2;
$r_hash1->{"c"} = $r_hash2;
是否使用:
$r_hash1->{c}=();
将释放 %hash2 使用的内存以供重用,因为它肯定必须在哈希上下文中使用:
%$r_hash1->{c}
但这会在哈希上下文中查看 $r_hash1,而不是 $r_hash1->{c} 的内容。
谢谢。