arrays - 打印哈希的 Perl 哈希

标签 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   = ??
}

最佳答案

在嵌套循环中迭代哈希的两个级别。

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

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

关于arrays - 打印哈希的 Perl 哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51703692/

相关文章:

Perl 三元错误地输入 "else"子句?

perl - "last"函数运算符?

java - 无法创建 torrent 的信息哈希

ruby - 为什么在使用默认对象初始化时我的哈希没有被填充

javascript - 遍历列表并插入对象数组

javascript - 在 Coffeescript 中,我如何根据一个属性对一组对象进行分组?

java - 重复的数组列表条目

c++ - 为什么在多重定义的情况下 char* 和 char[] 之间存在差异?

perl - DBIx::Class::ResultSet 中列名的抽象

ruby - 除了数组值之外,如何使用散列?或者如何创建哈希线?