String perl中的子串比较
我正在从两个初始字符串String perl中的子串比较,string,perl,loops,pattern-matching,match,String,Perl,Loops,Pattern Matching,Match,我正在从两个初始字符串seq1和seq2比较两个子字符串sub1和sub2,只允许一个不匹配$k是子序列的长度 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,
seq1
和seq2
比较两个子字符串sub1
和sub2
,只允许一个不匹配$k
是子序列的长度
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";
}
foreach(我的$i=0;$i
*当我运行代码时,它会被卡住,直到我终止这个进程,它才给出任何结果。有什么帮助吗*
foreach(我的$j=0;$jConsider使用perl样式代替c样式进行循环。例如,对于我的$j(0..(长度($seq2)-1-$k))
+1很好的捕捉。尽管你可能想突出显示那里的j
,因为很难发现。
foreach (my $j=0;$j<length($seq2)-$k;$i++)
foreach (my $j=0;$j<length($seq2)-$k;$j++)
# ^^