我需要將一個數組數組插入到數組中。並且這個整數數組是一個用於哈希鍵的值。哈希應該是這樣的:Perl:將數組數組插入到一個數組中,該數組是一個鍵值
"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]])? – amon