雖然@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