首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

perl 用foreach 求解遍历HASH解决办法

2013-01-09 
perl 用foreach 求解遍历HASH 刚自学perl一个小时 求高手指点一个HASH如下小明(语文50数学60)小

perl 用foreach 求解遍历HASH
 刚自学perl一个小时


 求高手指点  一个HASH如下  "小明"=>(语文=>50   数学=>60)
                           "小刚"=>(语文=>80   数学=>90)
  将HASH 遍历出来

     
     
[解决办法]

%hash = ("小明"=>{'语文'=>50, '数学'=>60},
        "小刚"=>{'语文'=>80, '数学'=>90});

while (($k, $v) = each %hash) {
    print "$k =>\n";
    while (($x, $y) = each %$v) {
        print "\t$x => $y\n";
    }
}

[解决办法]
赞同楼上
my %hash;

%hash = ("小明"=>{'语文'=>50, '数学'=>60},
        "小刚"=>{'语文'=>80, '数学'=>90});

foreach my $key ( keys %hash )
{
print "$key:\n";
my $subhash = $hash{$key};
foreach my $subkey ( keys %$subhash )
{
print "\t$subkey => $$subhash{$subkey}\n";
}
}

热点排行