取得列表(数组)某个元素的索引号

取得列表(数组)某个元素的索引号

在用 foreach (@a) 遍历数组, 并对数组的每个元素作模式匹配, 请问如何记录下匹配成功的那个数组元素的索引号? 谢谢!

如:
         foreach (@a)
              {
                    if (m/abc/)
                     {
                        #记录数组元素中有abc的那个元素的索引号
              }
              }
my @match = grep {$array[$_] =~ /$your_pattern/} 0..$#array;

test如下
[code]
#!/usr/bin/perl
use strict;
use warnings;
my @array = qw (a b c d e b);
my @res = grep {$array[$_] =~ m/b/} 0..$#array;
print "The index is @res\n";



运行结果

QUOTE:
The index is 1 5

@array =qw(a b c d e b c d b);
$index = 0;
for(@array){
        print "$index " if /b/;
        $index++;
}