use warnings; use strict; my $A_file = 'A.txt'; my $B = 'B.txt'; my $matches ='matches.txt'; open (INPUT, $A_file) or die "ERROR: cannot find file $A_file\n"; open (OUT2, ">$matches"); while () { my @text1=(); @text1 = split /\t/,$_; chomp @text1; next if ($text1[0]=~ /L1/gi); open (OUT1, "$B"); while() { my @textpac=(); @textpac = split /\t/,$_; chomp @textpac; next if ($textpac[0]=~ /OID/gi); if($textpac[3] eq $text1[0] && $textpac[11] eq $text1[11]) { print OUT2 join( "\t", @text1[ 1, 2, 3 ] ), "\n"; } } } close ($A_file); close OUT1;