if(@ARGV < 2){ die "Not enough arguments\n"; } $sequence=""; $fastaID=""; open(FILE1,"$ARGV[0]") or die "No fasta file provided in command line: $!\n"; while ($line=){ chomp($line); if ($line=~/^\s*$/){ next; }elsif ($line=~/^>/){ @data=split(" ",$line); $fastahash{$fastaID}=$sequence; $sequence=""; $fastaID=$data[1]; }else{ $sequence .=$line; $sequence=~s/\s*//g; } $fastahash{$fastaID}=$sequence; } open(OUT,"$ARGV[1]") or die "No output file:$!\n"; open(FILE2,"$ARGV[2]") or die "No fasta file provided in command line: $!\n"; while($line2=){ chomp($line2); if (exists $fastahash{$line2}){ print "$line2\t $sequence\n"; } } exit; #### > 2056360012 1047627436237 yyyacgagchagshgashcgahcgac acsasasasacsacsasasacaca ascassacsaascascascascac > 2056360013 1047627436238 xxxxcgagchagshgashcgahcgac acsasasasacsacsasasacaca ascassacsaascascascascac #### 2056360012 2056360013