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; }