У меня есть хеш-структура, подобная следующей:
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, который сортирует уплощенный хеш по значению.
Есть ли более эффективный способ сделать это?