有没有办法获得标量和使用smartmatch运算符(~~)完成的数组之间的比较所得到的匹配索引?
if ( $str ~~ @data ) {
#code to get index of array where match occurred
}
Run Code Online (Sandbox Code Playgroud)
如果存在匹配,则条件中的表达式将返回true,因此没有任何帮助.
在任何人给我上课之前:我非常喜欢smartmatch操作符,在非常简单的情况下,我不会在数据结构与数据结构或其他疯狂的任何疯狂比较中使用它.
我没有在docs(perldoc perlop)中看到一种方法.
use warnings;
use strict;
use List::MoreUtils qw(firstidx);
my @data = qw(red white blue green);
my $i = firstidx { $_ eq 'blue' } @data;
print "$i\n";
__END__
2
Run Code Online (Sandbox Code Playgroud)