我正在构建哈希的哈希。如何使用 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/