2012-06-02 16 views
0

給定某個序列的存儲在數組中,我已經找到,如果是較大序列B包含序列A.Perl的指數函數提取一定的子

我停留在索引部分...和我「M收到錯誤這樣的說法「TGACCA」不在行數字在數組元素是:

if (index($record_r1[1], $r2_seq[$check]) != -1)


的代碼是:

foreach my $check (@r2_seq) 
{ 
    if (index($record_r1[1], $r2_seq[$check]) != -1) 
    { 
    $matches= $matches + 1; 
    print "Matched"; 
    } 
    else 
    { 
    } 
} 

回答

3
foreach my $check (@r2_seq) 

$check呈現各元素的@r2_seq值。這不是索引。

$r2_seq[$check] 

這試圖使用的@r2_seq一個元素作爲索引@r2_seq。這不太可能是你想要的。更可能的是,你要使用

$check 

if (index($record_r1[1], $check) != -1) 

0

我相信你想$check指數,所以當時使用下面的代碼:

foreach my $index (0..$#r2_seq) 
{ 
    if (index($record_r1[1], $r2_seq[$index]) != -1) 
    { 
    $matches= $matches + 1; 
    print "Matched"; 
    } 
    else 
    { 
    } 
} 
+0

它不會去比賽,即使子是存在的。 – A14

+0

@ A14 - 請參閱http://ideone.com/jpahk上的示例 - 它可以工作... –