#!/usr/bin/perl use strict; my $string; while( ) { $string = $string . join " ", $_; } my $test = join "\n", map { $_->[0] } sort { $a->[1] <=> $b->[1] } map { [$_, (split)[9]] } split( /\n/, $string); print $test; __DATA__ cng003 sfd009 61.7 654 231 4 654 1800 711811 876112 E-193 cng006 sfd009 87.5 556 341 0 165 491 6234 45112 E-145 cng009 sfd009 80.2 234 536 3 17 184 9812345 9923000 E-13