$ cat in.txt 1 2 3 delta 1 2 3 apricot 1 2 3 charlie 1 2 3 bravo 1 2 3 echo 1 2 3 fox $ cat mysort.pl #!/usr/bin/env perl use warnings; use strict; my @rows; while ( my $line = <> ) { my @fields = split ' ', $line; push @rows, \@fields; } @rows = sort { $a->[3] cmp $b->[3] } @rows; for my $row (@rows) { print join(' ', @$row ), "\n"; } $ perl mysort.pl in.txt 1 2 3 apricot 1 2 3 bravo 1 2 3 charlie 1 2 3 delta 1 2 3 echo 1 2 3 fox