use strict; use warnings; my ($in, $out, %f1); open($in, 'in1.dat'); while (<$in>) { chomp; $f1{$_} = (); } close($in); open($out, '>out.dat'); open($in, 'in2.dat'); while (<$in>) { print $out if !exists $f1{(split /\t/)[0]}; } close($in); close($out);