It would look something like this:
my @a = ([1,2], [3,4]); my @b = sort { $a->[0] <=> $b->[0] || # the result is -1,0,1 ... $a->[1] <=> $b->[1] # so [1] when [0] is same } @a;
Check out sort for the full story. And, you'd probably have to maintain some kind of global setting for the sub (indicating which columns to sort by) or call the sub from the sort block indicating it there. Although, calling functions from the sort block can get surprisingly slow. The worst case is O(n*log(n)) I believe and calling functions in perl is among the slowest thing it does.
I'm sure you'll figure it out.
UPDATE: NetWallah, sorry, no bugs here. This was not intended to be a complete solution. What's the fun in having someone else write it all out for you?
-Paul
In reply to Re: How would I sort a two-dimensional array by multiple columns?
by jettero
in thread How would I sort a two-dimensional array by multiple columns?
by dbmathis
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |