清除值如果我有作为散列参考定义:的Perl:在嵌套散列
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}。
谢谢。
在第二个问题中,你正在定义$ r_hash1两次,我想你的意思是定义'my $ r_hash2 = \%hash2;' – imran 2013-04-08 17:05:43
Thanks - 编辑 – Caw 2013-04-08 18:25:16