2
給定一個鍵和數組值的數組,我可以使用@hash{@keys} = @vals
創建一個包含這些鍵和值的散列。將數組分配到散列子鍵
但是,我想這樣做的散列子項。這不起作用:$h{"key"}{@subkeys} = @vals
。
$ perl -MData::Dumper -le '
@subkeys=(qw(one two));
@vals=(1, 2);
$hash{"key"}{@subkeys} = @vals;
for (qw(subkeys vals)) {
print "$_ :\n", Dumper(\@{$_})
};
print "hash: \n", Dumper(\%hash);'
我得到的是:
subkeys :
$VAR1 = [
'one',
'two'
];
vals :
$VAR1 = [
1,
2
];
hash:
$VAR1 = {
'key' => {
'2' => 2
}
};
如果這是可能的,什麼是正確的語法得到以下自卸車結果:
$VAR1 = {
'key' => {
'one' => 1,
'two' => 2
}
};
它使用時的工作臨時哈希:
perl -MData::Dumper -le '@subkeys=(qw(one two)); @vals=(1, 2); @tmp{@subkeys}[email protected]; $hash{"key"}={%tmp}; print Dumper(\%hash)'
但我懷疑我只是錯過了正確的語法來獲得它沒有%tmp
散列。