切分文件

切分文件

有如下一段DNA序列:
>1
atgcgcaaaccccccccc
aaaaagggggcccaat
>2
ggtttaaaggggccccc
cccaaaatttttggggg
>3
tttggggaaaaccccca
gggggcccccccaaaa
tttccc
.................
>n
atccggccaattgggaa
ttttccccccgggggcccc


希望将这一个文件以'>'作为界标切分成n个文件,文件名就是'>'后面的字符串。
如何实现。
最近生物的帖子这么多?
#!/usr/bin/perl

use strict;
use warnings;

my $file;

while (<DATA>) {
    chomp;
    if (/>(.*)/) {
        $file = $1;
        open FILE, ">$file"
            or die "can not open $file: $!\n";
        next;
    }
    print FILE $_;
}

__DATA__
>1
atgcgcaaaccccccccc
aaaaagggggcccaat
>2
ggtttaaaggggccccc
cccaaaatttttggggg
>3
tttggggaaaaccccca
gggggcccccccaaaa
tttccc
>n
atccggccaattgggaa
ttttccccccgggggcccc


QUOTE:
原帖由 churchmice 于 2008-4-18 10:16 发表
最近生物的帖子这么多?

不多,好久没看到了


[Copy to clipboard] [ - ]
CODE:
#!/usr/bin/perl
use strict;
use warnings;
my $text = shift || "data";
open my $file,"<",$text or die "Fail to open $text $!";
$/=undef;
my $data = <$file>;
my %hash = grep { ! /^\s*$/ } split />(.+)\n/,$data;
foreach ( keys %hash) {
  open my  $temp,">","$_" or die "Fail to create $_ $!";
  print $temp $hash{$_} ;
  }

其中数据默认存在data文件中


QUOTE:
原帖由 Nosferatu 于 2008-4-18 10:52 发表


不多,好久没看到了

生物ms也就是atcg的东西
lz的ms还是一个mj
atcg是dna,生物的东西多着哪

p.s. lz这种问题应该是翻翻小骆驼半个小时解决的事情,你们是在害他阿