2011-12-15 4 views
2

는 임 시퀀스의 길이가 두 문자열 sub1 단 하나의 불일치 $k 수 있도록이 초기 문자열 seq1seq2에서 sub2 비교에 작업하는문자열 비교

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"; 
} 

* 그것은 내동댕이 내가 그 과정을 죽일 때까지 어떤 결과도주지 않을 때까지. 이것에 대한 어떤 도움? *

+3

대신 C 스타일의 루프 펄 스타일의 사용을 고려하여야한다. 예 : '내 $ j (0 .. (길이 ($ seq2) - 1 - $ k))'에 대해. – TLP

답변

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

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

+1 멋진 곳. 발견하기가 어려웠으므로 거기에서'j'를 강조하고 싶을 지 모르지만. – TLP

+0

캐럿이 가장 먼저 떠 올랐습니다. –

+0

좋아 보인다.^_ ^ – TLP