Wow, thanks a lot Aaaron !!!
This is not Array of Array, so I used second code what you have provided and it works perfectly fine. But I have few doubts:
1. In split you have specified ' ' which means it will split on single space, but in reality it splits for any number of space.
2. How can I do it using 'Schwartzian transform', I am still novice in perl, please do not mind.
3. How can I have flexibility to pass sorting order Ascending OR Descending to this subroutine. I tried as shown below but its not working.
sub sort_lines_by_column { my( $array, $column, $order ) = @_; my $ab; my $cd; if ($order eq 'asc') {$ab = "\$a"; $cd = "\$b";} elsif ($order eq 'dsc +') {$ab = "\$b"; $cd = "\$a";}; return sort { return( (split ' ', $ab)[$column] <=> (split ' ', $cd)[$column] ); } @$array; }
Its giving error "Use of uninitialized value in numeric comparison (<=>)"
In reply to Re^5: Sorting based on any column
by Anonymous Monk
in thread Sorting based on any column
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |