In answer to the somewhat more difficult question in
Re: How do I sort a multidimensional arrays?:
If you seek a one-liner answer, I don't know what it is, but if you just want to get the job done, then simply transpose the matrix, apply the earlier solution (for ordering according to the n-th row elements), and then transpose back. I.e., for the general case of a non-square matrix,
sub transpose {
map {
my $j = $_;
[ map $_[$_][$j], 0..$#_ ]
} 0..$#{$_[0]};
}
my @array = ([8, 9, 10], [6, 5, 4], [7, 8, 9]);
my @sorted =
transpose
sort { $a->[1] <=> $b->[1] }
transpose @array;
kj