如何获取包含要查找的单词的数组中的索引。
示例:
$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]
感谢您的帮助。
答案 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将变为循环前。