虽然@Adam Millerchip向您展示了如何访问您想要的元素,但我会对您的问题的其他部分发表评论。你说:
我的理解(由Data::Dumper
确认)
事实上,没有这样的事被证实Data::Dumper
。如果您想查看@keyPair
中的内容,则必须将对@keyPair
的引用传递至Dumper
。也就是说,你必须使用
print Dumper \@keypair;
代替
print Dumper @keypair; # I suspect you did this
如果您已经传递到@keyPair
一个参考,你会清楚地看到它是含有一个匿名数组的数组。
相反,通过不传递引用,您将@keyPair
的元素作为参数传递给Dumper
。在这种情况下,@keyPair
具有单个元素,即对具有两个元素的匿名数组的引用。从Dumper
的输出,因此愚蠢的你想到@keyPair
有两个要素。
也就是说,你的代码就相当于:
my @x = (['a', 'b']);
print Dumper @x;
是一样print Dumper $x[0]
。如果你想看到的是在@x
,你必须通过@x
参考,如:
print Dumper \@x;
例子:
$ perl -MData::Dumper -e "@x=(['a','b']);print Dumper @x"
$VAR1 = [
'a',
'b'
];
$ perl -MData::Dumper -e "@x=(['a','b']);print Dumper $x[0]"
$VAR1 = [
'a',
'b'
];
$ perl -MData::Dumper -e "@x=(['a','b']);print Dumper \@x"
$VAR1 = [
[
'a',
'b'
]
];
你做'倾销者(\ @ keyPair)'或'倾销者(@keyPair)'?我怀疑你做了后者,在这种情况下'$ VAR1'是'@ keyPair'的第一个(也是唯一的)元素。 – ikegami
您的值可以通过$ keyPair [0] [0]和$ keyPair [0] [1]来访问。 – Borodin