为什么printHash的第二次调用时散列值为空?perl:在子例程中添加散列项丢失
my %hash =();
addToHash(\%hash);
printHash(\%hash);
sub addToHash {
my %hash = %{$_[0]};
$hash{"test"} = "test";
printHash(\%hash);
}
sub printHash {
print "printHash: \n";
my %hash = %{$_[0]};
foreach my $key (keys %hash) {
print "key: $key, value: $hash{$key}\n";
}
}
输出:
printHash:
键:测试,值:测试
printHash:
'$ _ [0] - > {“test”} =“test”;'?几乎没有什么值得为它创造一个新的变量。 – TLP
实际使用,没有。为了与原文进行比较,我认为这是说明性的。 – chepner