use strict; use warnings; $/ = ">"; my $fastafile = 'j:\summer\begomo_genomes2.fasta'; my ($OUT, $IN); print "Input: $fastafile\n"; open my $ifh, "<", $fastafile or die "cannot open $fastafile: $!\n"; while (my $chunk = <$ifh>){ $chunk = lc $chunk; my ($accession) = $chunk =~ /gi\|(\d+)/; my ($acronym) = $chunk =~ /\|\s+(.*),/; $acronym =~ s/\[|\]|\:|\d+|\-\///g; $acronym =~ s/\s/_/g; $acronym =~ s/dnaa/dna_a/g; $acronym =~ s/dnab/dna_b/g; my ($sequence) = $chunk =~ /([a|c|t|g]+)\s+/; my $outfile = "j:\\summer\\begomo\\${accession}_${acronym}.seq"; open my $ofh, ">", $outfile or die "cannot open $outfile: $!\n"; print "Creating $outfile\n"; print $ofh "$accession $acronym\n^^\n$sequence"; close $ofh; }