for my $page (@Tree) { my $Sort = 0; my $M = 100; for (@{$page->{Path}}) { $Sort += $M * $_; $M = $M / 100; } $page->{Sort} = $Sort; } @Tree = sort {$a->{Sort} <=> $b->{Sort}} @Tree;