http://qs321.pair.com?node_id=64430

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Given a multi dimensional, what is the best way to sort the array numerically? eg:
@array = ( [5,7,2],[9,4,8],[1,6,3]); after sort results= ( [1,2,3],[4,5,6],[7,8,9] );
I have one solutions, but it kinda defeats the purpose, it completely disassembles the array and then rebuilds it. This seems to me as this would be slow and cumbersome and also limited to square tables.
#!/usr/bin/perl use Data::Dumper; $sample= [ [5,7,2], [9,4,8], [1,6,3]]; $idx = $#$sample; for ($row=0; $row <= $idx; $row++) { if ( $#{$sample->[$row]} != $idx) {die "not a square table\n";} else { push @unsorted, @{$sample->[$row]};} } @sorted = sort { $a <=> $b } @unsorted; for ($row=0; $row <= $idx; $row++) { my $count = 0; while ($count <= $idx) { $sample->[$row][$count] = shift @sorted; $count++; } } print Dumper($sample);