- 论坛徽章:
- 0
|
请问这样可以吗?(我试过不行。。。有没有更好的办法???)------
#!/usr/bin/perl -w
use strict;
my $i;
for ($i = 0; $i <= 100; $i++){
`perl sare1.pl wwww >tter`;
`mv tter wwww`;
}
----------------
如果用子程序的话,能不能把调用子程序放在子程序里面????好像不行。。。。-------
#!/usr/bin/perl
use strict;
my @cyclee;
my @file;
my @result;
while (<>){
my @tmp = split;
push @cyclee, [ @tmp ];
}
for my $wor(@cyclee){
print "@$wor\n";
}
for my $row(@result){
print "@$row\n";
}
sub cyclee{
my @file = @_;
for my $i (0 .. $#file){
if($file[$i+1][3] == $file[$i][3] && $file[$i+1][3] < $file[$i][4] && $file[$i+1][4] < $file[$i][4]){
print "$file[$i+1][0]\t$file[$i+1][1]\t$file[$i+1][2]\t$file[$i][3]\t$file[$i+1][4]\t$file[$i+1][5]\t$file[$i+1][6]\t$file[$i+1][7]\t$file[$i+1][8]\t\n";
}
elsif($file[$i+1][3] == $file[$i][3] && $file[$i+1][3] < $file[$i][4] && $file[$i+1][4] >= $file[$i][4]){
print "$file[$i][0]\t$file[$i][1]\t$file[$i][2]\t$file[$i][3]\t$file[$i][4]\t$file[$i][5]\t$file[$i][6]\t$file[$i][7]\t$file[$i][8]\t\n";
}
elsif($file[$i+1][3] > $file[$i][3] && $file[$i+1][3] < $file[$i][4] && $file[$i+1][4] >= $file[$i][4]){
print "$file[$i][0]\t$file[$i][1]\t$file[$i][2]\t$file[$i+1][3]\t$file[$i][4]\t$file[$i][5]\t$file[$i][6]\t$file[$i][7]\t$file[$i][8]\t\n";
}
elsif($file[$i+1][3] > $file[$i][3] && $file[$i+1][3] < $file[$i][4] && $file[$i+1][4] < $file[$i][4]){
print "$file[$i+1][0]\t$file[$i+1][1]\t$file[$i+1][2]\t$file[$i+1][3]\t$file[$i+1][4]\t$file[$i+1][5]\t$file[$i+1][6]\t$file[$i+1][7]\t$file[$i+1][8]\t\n";
}
elsif($file[$i+1][3] >= $file[$i][4]){
print "$file[$i][0]\t$file[$i][1]\t$file[$i][2]\t$file[$i][3]\t$file[$i][4]\t$file[$i][5]\t$file[$i][6]\t$file[$i][7]\t$file[$i][8]\t\n";
}
}
my @result = &cyclee(@cyclee);
if($#result < $#cyclee){
my @cyclee = &cyclee(@result);
}
}
---------------------
用到的输入文件:
gi_68349971_gb_AAGK01000005 genscan mRNA 4239 4451 . - . ID=G000134;Type=sigle-exon;
gi_68352484_gb_AAGK01000001 AUGUSTUS mRNA 87382 87684 0.98 - . ID=A4844;
gi_68351525_gb_AAGK01000002 genscan mRNA 94270 94722 1 - . ID=A3297;
gi_68349689_gb_AAGK01000006 AUGUSTUS mRNA 114482 114691 1 - . ID=A0381;
gi_68351525_gb_AAGK01000002 genscan mRNA 116765 116851 0.43 + . ID=A3453;
gi_68349971_gb_AAGK01000005 AUGUSTUS mRNA 117381 117527 0.96 + . ID=A1300;
gi_68350595_gb_AAGK01000004 genscan mRNA 123238 123609 0.36 + . ID=A2358; |
|