打印Perl哈希散列

时间:2018-08-06 08:43:03

标签: arrays perl hash dbi

我正在构建哈希哈希。如何使用while获取每个值?

my %users = ();

while ( my $row_ref = $select_sth->fetchrow_hashref() ) {

    $id     = $row_ref->{uid};
    $name   = $row_ref->{name};
    my $loc = $row_ref->{loc };

    $users{$loc}{$name} = $id;
}

while ( my ($user, $val) = each(%users) ) {

    # how to get name, loc, id?

    my $uname = ??
    my $uloc  = ??
    my $uid   = ??
}

1 个答案:

答案 0 :(得分:7)

在嵌套循环中遍历哈希的两个级别。

for my $loc (keys %users) {
    for my $name (keys $users{$loc}->%*) {
        say "loc: $loc -- name: $name -- id: $users{$loc}{$name}";
    }
}

提示:使用Data::Dumper或类似方法可视化嵌套的数据结构。