comm -13 file1 file2 > file3 #### open FIRST,"file1" or die "$!: file1\n"; open LAST,"file2" or die "$!: file2\n"; open NEW,">file3" or die "$!: file3\n"; my %names = (); my %n2 = (); while () { /^(\S+)/; $names{$1} = 1; } close FIRST; while () { /^(\S+)/; $names{$1} or $n2{$1} = $_; } close LAST; print NEW $n2{ $col1 } for my $col1 ( sort keys %n2 ); close NEW;