我正在使用 perl 中的哈希,但不明白为什么哈希值会在以下内容中发生变化:
use strict;
sub test
{
my ($value_ref) = @_;
my %value = %$value_ref;
$value{'abc'}{'xyz'} = 1;
}
my %hash;
$hash{'abc'}{'xyz'} = 0;
test (\%hash);
print "$hash{'abc'}{'xyz'}\n";
上面返回1,为什么它不像这里那样返回0?
use strict;
sub test
{
my ($value_ref) = @_;
my %value = %$value_ref;
$value{'abc'} = 1;
}
my %hash;
$hash{'abc'} = 0;
test (\%hash);
print "$hash{'abc'}\n";
我想这与我传递 %hash 的方式有关。我错过了什么?