0

配列に格納された特定のシーケンス A が与えられた場合、より大きなシーケンス B にシーケンス A が含まれているかどうかを確認する必要があります。

インデックス部分で立ち往生しています...そして、69行目の配列要素の引数「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
  {
  }
}
4

2 に答える 2

3
foreach my $check (@r2_seq)

$checkの各要素の値を取ります@r2_seq。インデックスではありません。

$r2_seq[$check]

@r2_seqこれは、の要素をへのインデックスとして使用しようとしています@r2_seq。それはあなたが望むものではありそうにありません。おそらく、あなたは使いたい

$check

のように

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

于 2012-06-02T23:39:04.070 に答える
0

I believe you wanted $check to be index, so then use the following code:

foreach my $index (0..$#r2_seq)
{
  if (index($record_r1[1], $r2_seq[$index]) != -1)
  {
     $matches= $matches + 1;
     print "Matched";
  }
  else
  {
  }
}
于 2012-06-02T23:49:04.277 に答える