#!/usr/bin/perl use strict; use warnings; open my $FH1,"<", "file1.txt" or die "could not open file1.txt: $!"; open my $FH2,"<", "file2.txt" or die "could not open file2.txt: $!"; my @array=<$FH2>; while (my $line1 = <$FH1>) { my @hold; my @coll = split /\s+/, $line1; my $hit=$coll[5]; @hold = grep /$hit/, @array; my $held = shift @hold; if (defined $held) { my @cols = split /\s+/, $held; print join "\t", @cols; print "\n"; } else{ print join "\t", @coll; print "\n"; } }