有人能帮我理解这个 Perl 程序的输出吗:
use Data::Dumper;
my %hash;
$hash{hello} = "foo";
$hash{hello}{world} = "bar";
print $hash{hello} . "\n";
print $hash{hello}{world} . "\n";
print Dumper(\%hash);
和输出:
foo
bar
$VAR1 = {
'hello' => 'foo'
};
“富”从何而来?怎么不是dumper打印出来的?
请注意,如果我交换作业的顺序:
use Data::Dumper;
my %hash;
$hash{hello}{world} = "bar";
$hash{hello} = "foo";
print $hash{hello} . "\n";
print $hash{hello}{world} . "\n";
print Dumper(\%hash);
我的输出是我所期望的:
foo
$VAR1 = {
'hello' => 'foo'
};
编辑:我知道这use strict;
会抓住这一点,但我更感兴趣的是知道字符串“foo”是如何被打印的。