use strict; my @data = ( ['-r--r--r--','1','yourname','8318','2000-01-01','ant.txt'], ['-r--r--r--','1','yourname','11986','1992-12-30','tiger.txt'], ['-r--r--r--','1','yourname','72698','2004-03-03','duck.txt'], ['-r--r--r--','1','yourname','46852','1788-01-26','goose.txt'] ); print( "Which column to sort on?" ); my $column = ( =~ m/^\d+$/ ); exit( 1 ) if ( ! defined($column) ); my @sorted = sort { $a->[$column] cmp $b->[$column] } @data; print( join( "\n", map { join( ",", @{$_} ) } @sorted ) );