use strict; @filelist = ("f1"); while(){ chomp; /^([^\t]*)\t/; # I assume it is tab seperated my $rec = $1; foreach my $file(@filelist){ my $entry = qx(grep -P "^$rec\t" $file);# I assume it is tab seperated print "$rec\t$file\t$entry"; } } __DATA__ K 1 J 2 L 3 H 4 #### open (OUT, ">", $myoutfile) || die "$!"