Beyond using the Schwartzian transform, you can use the magic of pack to create your sort keys! Keys N, n and C can all work, if your IDs are nonnegative and small enough (0xFFFFFFFF for the first [which will anyway put you in trouble when you try to manipulate them, or 0xFFFF for the second, or a measly 0xFF for the third).

sub make_key { my $x = shift; pack 'N*', @{$x->{Path}}; }
is enough to create keys; you compare these keys with cmp, so you don't need to pass a coderef to sort (yay!).

In reply to Re: Complex Sort - using varying numbers of parameters by ariels
in thread Complex Sort - using varying numbers of parameters by George_Sherston

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":