我有3维哈希表和2维哈希表,我想将2维哈希表与3维哈希表的一个内部哈希表合并,类似于我合并一对2维哈希表的操作:
my %3dhash;
my %2dhash;
my $key = "some string";
%3dhash{$key} = ($3dhash{$key}, %2dhash);
但是当我试着这样做的时候,它并没有起作用。我应该做些什么?
发布于 2010-10-29 04:35:57
尝试以下操作:
my %hash3d;
my %hash2d;
....
my $key = "some string";
$hash3d{$key} = { %{ $hash3d{$key} }, %hash2d };
Perl中的变量不能以数字开头,所以我重命名了变量。现有散列周围的%{ ... }
将其扩展为列表。此列表与%hash2d
中的列表展平。该列表周围{ ... }
是匿名散列引用构造函数,它创建一个新的散列引用,然后将该引用存储在$hash3d{$key}
中
https://stackoverflow.com/questions/4046890
复制相似问题