在Perl中合并内部哈希

时间:2010-10-28 20:25:23

标签: perl hash perl-data-structures

我有3维散列和2维散列,我想将2维散列与3维散列的内部散列之一合并,类似于此,这类似于我合并一对2d哈希:

my %3dhash;
my %2dhash;
my $key = "some string";
%3dhash{$key} = ($3dhash{$key}, %2dhash);

但是当我尝试它时它不起作用。我该怎么办?

1 个答案:

答案 0 :(得分:2)

尝试以下方法:

my %hash3d;
my %hash2d;
....
my $key = "some string";
$hash3d{$key} = { %{ $hash3d{$key} }, %hash2d };

Perl中的变量不能以数字开头,因此我重命名了变量。现有哈希周围的%{ ... }将其扩展为列表。此列表与%hash2d中的列表相同。该列表周围的{ ... }是匿名哈希引用构造函数,它创建一个新的哈希引用,然后存储在$hash3d{$key}