@sorted_array= map { $_->[0] } sort { $numeric ? $b->[1] <=> $a->[1] : $b->[1] cmp $a->[1]} map { [ $_, (split " ", $_)[$col_2sort] } @unsorted_array; #### @sorted_array= map { $_->[0] } sort { $b->[1] <=> $a->[1] || $b->[1] cmp $a->[1]} map { [ $_, (split " ", $_)[$col_2sort] } @unsorted_array; #### $ perl -e 'print 3 <=> "b"' 1 ~ $ perl -e 'print 3 cmp "b"' -1