【发布时间】:2014-12-31 19:17:58
【问题描述】:
所以我尝试使用 Perl HoH 并将一些值从 HoH 推送到数组中。
这里有一部分代码可以更好的解释一下;
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";
}
}
基本上,这个脚本的目标是遍历 HoH,但在每个散列块中它给出STDIN,然后你输入key,然后我想推那个value元素放入数组中。 (现在代码只是说print 用于调试)。
我试过了
$hoh{$group}{$spec}
$hoh{$group}
$hoh{$group}->{$spec}
对于$hoh{$group},我得到HASH(0x6ff920) 和所有其他值,它只是空白,没有错误。
有什么想法吗?谢谢
【问题讨论】:
标签: perl hash-of-hashes