Perl:获取数组中特定单词的索引

时间:2019-01-12 16:12:57

标签: arrays perl

如何获取包含要查找的单词的数组中的索引。

示例:

$VAR1 = [
      'ID=T_03192',
      'Name=T_03192',
      'Alias=augustus_masked-2_Tcm_b3v06_scaf000585-processed-gene-0.22',
      'arth_ontology_term=GO:0006412,GO:0003735,GO:0005840',
      'arth_topblasthit=gi|1370630763|gb|PSN39892.1|60S ribosomal protein L12 [Blattella germanica]',
      'droso_ontology_term=GO:0003735,GO:0002181,GO:0000027,GO:0019843,GO:0022625',
      'droso_topblasthit=gi|17864452|ref|NP_524819.1|ribosomal protein L12, isoform A [Drosophila melanogaster]'
    ];

我想要包含'arth_topblasthit'的索引,因此结果将是:

$ VAR1 [4]

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

尝试此操作,如先前声明为$VAR1作为数组引用:

my $target = "arth_topblasthit";
my $idx = undef;

foreach ( 0 .. $#$VAR1 ) {
    if ( index ( $VAR1->[ $_ ], $target ) >= 0 ) {
        $idx = $_;
        last;
    }
}

## $idx is the targeting index, or undef if not found

注意:如果我们使用

my $idx = undef;
foreach $idx ( ... ) {
    $idx = *something*
}

## now $idx = undef whatsoever

循环后,$ idx将变为循环前。