while (){ chomp; my $line = $_; ... if ($line =~ /^>/){ my $header = $line; if ($header =~ /(>gi.*)\[(.+)\](>gi.*)\[(.+)\]/){ my $headerHash; # A $headerHash{$1} = $2; } else{ my $seq = $line; print OUTFILE $headerHash, "\n", $seq, "\n"; # B } } }