use strict; use warnings; my $f2 = 'cat_mapping_in_A.txt'; my $f1 = 'cat_mapping_in_B.txt'; my $outfile = '1.txt'; my %results = (); open FILE1, "$f1" or die "Could not open file: $! \n"; while(my $line = ){ chomp $line; $results{$line}=1; } close(FILE1); open FILE2, "$f2" or die "Could not open file: $! \n"; while(my $line =) { chomp $line; $results{$line}++; } close(FILE2); open (OUTFILE, ">$outfile") or die "Cannot open $outfile for writing \n"; foreach my $line (keys %results) { print OUTFILE "$line\n" if $results{$line} == 1; } close OUTFILE;