【发布时间】:2013-06-02 00:37:34
【问题描述】:
我需要将一个数组插入到一个数组中。整个数组是哈希中键的值。我的意思是哈希应该如下所示:
"one"
[
[
1,
2,
[
[
3,
4
],
[
5,
6
]
]
]
]
其中一个是这里的键,其余部分是散列中该键的值。 观察数组 [3,4] 和 [5,6] 的数组是实际数组中的第三个元素。前两个元素是 1 和 2。
我写了一个小程序来做同样的事情。
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
$Data::Dumper::Terse = 1;
$Data::Dumper::Indent = 1;
$Data::Dumper::Useqq = 1;
$Data::Dumper::Deparse = 1;
my %hsh;
my @a=[1,2];
my @b=[[3,4],[5,6]];
$hsh{"one"}=\@a;
push @{$hsh{"one"}},@b;
print Dumper(%hsh);
但打印如下:
"one"
[
[
1,
2
], #here is where i see the problem.
[
[
3,
4
],
[
5,
6
]
]
]
我可以看到数组的数组没有插入到数组中。 有人可以帮我解决这个问题吗?
【问题讨论】:
-
[...]创建一个数组引用,而不是一个数组。所以@a=[1,2]创建了一个包含一个元素的数组。这可能是您问题的根源,但我不确定:您预期的数据结构的意图令人困惑。@a=(1,2)将创建一个包含两个元素的数组。你确定不要%hsh = ( one => [1, 2, [ 3, 4 ], [5, 6]] )?
标签: arrays perl hash perl-data-structures hash-of-hashes