この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'
};
「フ」はどこから来たのですか?ダンパーで出力されないのはなぜですか?
割り当ての順序を入れ替えると、次のようになります。
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」がまだどのように出力されているかを知りたいです。