#!/usr/bin/perl -wd open( FILE, "file.dat" ) || die "Cannot Open file ($!)\n"; my @output = map { $_->[0] } sort { $a->[1] cmp $b->[1] } map { [$_, (split(/\|/,$_))[1]] } ; close( FILE ); print @output, "\n";