所以我想使用Perl HoH並將一些值從HoH中推入一個數組。Perl哈希哈希
下面是代碼的一部分,以便更好地解釋;
my $hoh = (
antenna_included=>{
"1" => '1 MultiBand Antenna',
"2" =>'2 Multiband Antennas',
"3" =>'1 MultiBand Antenna & 2 WiFi Antennas',
"4" =>'2 Multiband Cellular Antennas & 2 WiFi Antennas',
"N" =>'No Antennas Included',
},
ip_rating=>{
I6 => 'IP 64',
CD => 'Intrinsically Safe, Class 1 Div 2, IP 64',
NI => 'No',
});
foreach $group (sort keys %hoh) {
foreach $spec (sort keys %{ $hoh{$group} }) {
print "$spec=>$hoh{$group}{$spec}\n";
}
print "what part is it: ";
my $input = <STDIN>;
chomp $input;
if (exists $hoh{$group}) {
print "$hoh{$spec}\n"; #this is the problematic line.
}
else {
print "not a match!\n";
}
}
基本上這個腳本的目標是通過可可西里循環,但在整個哈希的每一塊它給STDIN
,那麼你在key
類型,然後後來我想該元素的value
推入數組。 (現在代碼只是說print
用於調試)。
我已經試過
$hoh{$group}{$spec}
$hoh{$group}
$hoh{$group}->{$spec}
對於$hoh{$group}
我得到HASH(0x6ff920)
和所有其他價值,這只是空白,沒有錯誤。
有什麼想法?謝謝
感謝迴應和參考。這並不奏效(至少只是將其添加到一個「有問題」的行)。你認爲這可能是因爲我需要在'for'循環上面使用' - >'運算符,然後我才能引用它? – nzaleski