我有一个$map{k1}{k2}{k3}{k4}.
如何正确编写循环以打印所有值?以下不起作用.
for my $k1 (sort keys %tripletsCountMap) {
for my $k2 (sort keys %$tripletsCountMap{k1}){
for my $k3 (sort keys %$tripletsCountMap{k1}{k2}) {
for my $k4 (sort keys %$tripletsCountMap{k1}{k3}{k3}){
print "$k1 $k2 $k3 $k4\n";
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
Sin*_*nür 12
k1和之间存在差异$k1.for my $k1 (sort keys %tripletsCountMap) {
for my $k2 (sort keys %{ $tripletsCountMap{$k1} }){
for my $k3 (sort keys %{ $tripletsCountMap{$k1}{$k2} }) {
for my $k4 (sort keys %{ $tripletsCountMap{$k1}{$k2}{$k3} }){
printf "$k1 $k2 $k3 $k4: $tripletsCountMap{$k1}{$k2}{$k3}{$k4}\n";
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
更好的是:
use Data::Dumper;
print Dumper \%tripletsCountMap;
Run Code Online (Sandbox Code Playgroud)
而且,你为什么要对键进行排序?我在下面的评论中理解@ysth的观点.除非有一些显式的输出相关要求,否则我只是不习惯在迭代时对哈希的键进行排序.
| 归档时间: |
|
| 查看次数: |
7951 次 |
| 最近记录: |