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 を渡す方法に関係していると思います。私は何が欠けていますか?