Итак, я пытаюсь использовать Perl HoH и вставлять некоторые значения в массив из HoH.Perl Hash of Hash
Вот часть кода, чтобы лучше объяснить;
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