perl中的子字符串比较

时间:2011-12-15 00:19:22

标签: string perl loops pattern-matching match

我正在努力比较来自2个初始字符串sub1sub2的2个子字符串seq1seq2,只允许一个不匹配$k是子序列的长度< / p>

foreach (my $i = 0; $i < length($seq1) - $k; $i += 1) {
    my $sub1 = substr($seq1, $i, $k);
    foreach (my $j = 0; $j < length($seq2) - $k; $i++) {
        my $sub2 = substr($seq2, $j, $k);
        my $diff = $sub1 ^ $sub2;
        my $num_mismatch = $diff =~ tr/\0//c;
        if ($num_mismatch == 1) { 
            $d{$sub1}++;
        }
    }
}
foreach (keys %d) {
    print "$_\n";
}

* 当我运行代码时它会卡住,直到我杀死进程并且它不会给出任何结果。对此有何帮助? *

1 个答案:

答案 0 :(得分:11)

foreach (my $j=0;$j<length($seq2)-$k;$i++)

应该是

foreach (my $j=0;$j<length($seq2)-$k;$j++)
                                   # ^^