我正在努力比较来自2个初始字符串sub1
和sub2
的2个子字符串seq1
和seq2
,只允许一个不匹配$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";
}
* 当我运行代码时它会卡住,直到我杀死进程并且它不会给出任何结果。对此有何帮助? *
答案 0 :(得分:11)
foreach (my $j=0;$j<length($seq2)-$k;$i++)
应该是
foreach (my $j=0;$j<length($seq2)-$k;$j++)
# ^^