my $column_number = 3; # 0-origin based my $prev = ""; for ( map { $_->[0] } sort { $a->[1] cmp $b->[1] } map { [$_, (split)[$column_number]] } <> ) { print unless $_ eq $prev; $prev = $_; }