sub arrarycomp { my ($x, $y) = @_; my $arrmin = $#$x; $arrmin = $#$y if $#$y < $arrmin; my $result; for (0 .. $arrmin) { if ($result = $$x[$_] cmp $$y[$_]) { return $result; } } return $#$x - $#$y; } @out = sort {arrarycomp($a, $b)} @in;