我有一个类似于以下结构的哈希表:
KeyA => {
Key1 => {
Key4 => 4
Key5 => 9
Key6 => 10
}
Key2 => {
Key7 => 5
Key8 => 9
}
}
KeyB => {
Key3 => {
Key9 => 6
Key10 => 3
}
}
我需要打印出哈希结构的遍历路径和遍历结束时的值,以值的顺序排序。 例如,对于上面的哈希结构,我需要打印:
KeyB Key3 Key10 3
KeyA Key1 Key4 4
KeyA Key2 Key7 5
KeyB Key3 Key9 6
KeyA Key2 Key8 9
KeyA Key1 Key5 9
KeyA Key1 Key6 10
目前,为了解决这个问题,我正在使用嵌套的foreach循环遍历哈希结构,并通过插入一个键等于遍历路径(例如“KeyA Key3 Key10”)和值等于遍历路径末尾的值(例如3)的元素来创建一个扁平化的哈希,然后进行另一个foreach循环,该循环按值对扁平化的哈希进行排序。
有没有更有效的方法?
push @{ $flat{$path} } => $value
。 - Greg Bacon