什麼是你扔在這裏下車的是,你的散列值而不是實際值,而是數組引用(如在您的數據[ ... ]
::自卸車輸出)指向包含單元素陣列實際數據。所以,你需要提領他們從所得陣列搶到的第一個元素:
#!/usr/bin/env perl
use strict;
use warnings;
use 5.010;
my %hash1 = ('5555' => [ '13570' ]);
my %hash2 = ('13570' => [ '[04/Jun/2013:15:06:13' ]);
for (keys %hash1) {
my $first_key = $_;
my $second_key = $hash1{$first_key}[0];
say "$first_key -> $second_key -> $hash2{$second_key}[0]";
}
輸出:
5555 -> 13570 -> [04/Jun/2013:15:06:13
編輯:備用代碼來檢查每個%hash1
條目中的所有數據並顯示所有相應的在%hash2
每個值:
#!/usr/bin/env perl
use strict;
use warnings;
use 5.010;
my %hash1 = ('5555' => [ '13570', '8675309' ]);
my %hash2 = (
'13570' => [ '[04/Jun/2013:15:06:13' ],
8675309 => [ 'Jenny', 'I got your number' ],
);
for (keys %hash1) {
my $first_key = $_;
for my $second_key (@{$hash1{$first_key}}) {
if (exists $hash2{$second_key}) {
say "$first_key -> $second_key ->";
say "\t$_" for @{$hash2{$second_key}};
}
}
}
輸出:
5555 -> 13570 ->
[04/Jun/2013:15:06:13
5555 -> 8675309 ->
Jenny
I got your number
[你試過什麼?](http://whathaveyoutried.com) – 2013-06-11 20:56:43
'定義$ VAR1 - > {$ VAR1 - > {'5555'}}''應該告訴你, $ VAR1的鍵'5555'存在於$ VAR1 .... VAR1的不同定義..... 8/ – tjd
我試過,|如果(定義$ hash1 {$ key2})| ,這裏key2是來自第二個散列。 –