我正在构建哈希哈希。如何使用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 = ??
}
答案 0 :(得分:7)
在嵌套循环中遍历哈希的两个级别。
for my $loc (keys %users) {
for my $name (keys $users{$loc}->%*) {
say "loc: $loc -- name: $name -- id: $users{$loc}{$name}";
}
}
提示:使用Data::Dumper或类似方法可视化嵌套的数据结构。