Perl索引函数提取某个子字符串

时间:2012-06-02 23:29:22

标签: perl

给定存储在数组中的某个序列A,我必须找到一个更大的序列B是否包含序列A.

我被困在索引部分...而且我得到一个错误,参数“TGACCA”不是数字元素行 69 中的数字是:

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
  {
  }
}

2 个答案:

答案 0 :(得分:3)

foreach my $check (@r2_seq)

$check接受@r2_seq中每个元素的值。它不是索引。

$r2_seq[$check]

这是尝试使用@r2_seq的元素作为@r2_seq的索引。你想要的不太可能。更有可能的是,你想使用

$check

,如

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

答案 1 :(得分:0)

我相信您希望$check索引,因此请使用以下代码:

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