Perl程序不起作用

时间:2014-03-06 18:33:36

标签: perl if-statement bioperl

我编写了一个perl程序来查找给定DNA字符串中的GC内容百分比。但是程序正在执行错误情况(否则是条件语句的一部分)

$dna = "AGTC";
$a = 0;
$g = 0;
$t = 0;
$c = 0;

for ($p = 0; p < length $dna; ++$p) {
    $ch = substr($dna,$p,1);
    if($ch eq 'A') {
            ++$a;
    } elsif($ch eq 'G') {
            ++$g;
    } elsif($ch eq 'T') {
            ++$t;
    } elsif($ch eq 'C') {
            ++$c;
    } else {
            print "error";
    }
}
$total = $a + $g + $t + $c;
$gc = $g + $c;
$percentagegc = ($gc/$total) * 100;
print "percentage gc content is = $percentagegc";

请帮忙。

1 个答案:

答案 0 :(得分:4)

在此行中$的某个用法中,您遗漏了$p

for($p = 0;p < length $dna;++$p)
           ^ -- here

修复并运行脚本我正确得到:

percentage gc content is = 50