如何在perl中增加hash的哈希值

时间:2015-05-06 22:02:36

标签: perl hash hash-of-hashes

无法使用此代码正确填充HoH: 当我使用下面的方式运行循环时:

while (my $form = $form_rs->next ()){
    my $menu=$form->get_column("fmenu");
    my $script=$form->get_column("fscript");
    my $name=$form->get_column("ftitle");

    $itemList->{$menu} = {
        $script => $name
    };
}
print Dumper $itemList;

它运行正常,但由于$ menu重复,它只保留HoH中的最后一个值。所以我在Data Dumper中得到了错误的输出。我的每个菜单只有1条记录,而应该有很多。

得到:

itemList=>{
    menu1=>{
        script1=>formName1
    },
    menu2=>{
        script3=>formName3
    }
    ...(and so on)
}

而EXPECTED:

itemList=>{
    menu1=>{
        script1=>formName1,
        script2=>formName2
    },
    menu2=>{
        script3=>formName3,
        ...(and so on)
    }
    ...(and so on)
}

帮助。 谢谢。

1 个答案:

答案 0 :(得分:3)

然后您要更新$itemList->{$menu}{$script},而不是将对单元素哈希的引用分配给$itemList->{$menu}

$itemList->{$menu}{$script} = $name;