0
内哈希我有3个维Hash和2维散了,我想用3维散,这样的事情,这是类似的内部散列的一个合并的2维Hash我做合并一对2d哈希值:合并在Perl
my %3dhash;
my %2dhash;
my $key = "some string";
%3dhash{$key} = ($3dhash{$key}, %2dhash);
但是,当我试图它不起作用。我该怎么做?
内哈希我有3个维Hash和2维散了,我想用3维散,这样的事情,这是类似的内部散列的一个合并的2维Hash我做合并一对2d哈希值:合并在Perl
my %3dhash;
my %2dhash;
my $key = "some string";
%3dhash{$key} = ($3dhash{$key}, %2dhash);
但是,当我试图它不起作用。我该怎么做?
尝试以下方法:在Perl
my %hash3d;
my %hash2d;
....
my $key = "some string";
$hash3d{$key} = { %{ $hash3d{$key} }, %hash2d };
变量不能以数字开头,所以我改名的变量。围绕现有散列的%{ ... }
将其扩展为列表。该列表与从%hash2d
列表中变平。周围的列表{ ... }
是匿名哈希引用构造函数,它创建了一个新的哈希引用,然后存储在$hash3d{$key}
谢谢!我从内存中输入代码,这是所有语法错误的原因。你的解决方案虽然工作。 – DAG 2010-10-28 20:56:06
变量也可以从数字开始 - '$ 0 $ 1 $ 2 ... $ 9'是什么? ;-) – ephemient 2010-10-28 21:30:27
@ephemient,这些都是内置的特殊变量。您不能创建以数字开头的新变量。 – cjm 2010-10-28 21:41:41