Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String perl中的子串比较_String_Perl_Loops_Pattern Matching_Match - Fatal编程技术网

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++)
                                   # ^^