sub computeSortKey { my $aref=shift; my $sort; my $M = 100; for (@{$aref}) { $sort += $M * $_; $M = $M / 100; } return $sort; } #Schwartzian Transform @Tree = map {$_->[0]} sort {$a->[1] <=> $b->[1]} map {[ $_, computeSortKey($_->{Path})]} @Tree;