我有3维散列和2维散列,我想将2维散列与3维散列的内部散列之一合并,类似于此,这类似于我合并一对2d哈希:
my %3dhash;
my %2dhash;
my $key = "some string";
%3dhash{$key} = ($3dhash{$key}, %2dhash);
但是当我尝试它时它不起作用。我该怎么办?
答案 0 :(得分:2)
尝试以下方法:
my %hash3d;
my %hash2d;
....
my $key = "some string";
$hash3d{$key} = { %{ $hash3d{$key} }, %hash2d };
Perl中的变量不能以数字开头,因此我重命名了变量。现有哈希周围的%{ ... }
将其扩展为列表。此列表与%hash2d
中的列表相同。该列表周围的{ ... }
是匿名哈希引用构造函数,它创建一个新的哈希引用,然后存储在$hash3d{$key}