#! perl -slw use strict; use Data::Dumper; local $/ = '>'; my @sequences; (undef) = scalar <>; my $start = time; while( my $record = <> ) { my @lines = split "\n", $record; pop @lines if $lines[-1] eq '>'; my $desc = shift @lines; ## This is the description my $seq = join "\n", @lines; ## This is the sequence. open my $out, '>', $desc . 'fasta' or warn "$desc.fasta : $!" and next; print $out ">$desc\n", $seq; } printf STDERR "Took %d seconds\n", time() - $start;