数组 – 如果有一个(Perl),在数组中查找满足特定条件的项目?

前端之家收集整理的这篇文章主要介绍了数组 – 如果有一个(Perl),在数组中查找满足特定条件的项目?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否存在Perl习惯用法,用于在符合特定条件的数组中查找项目(如果有)?

my $match = 0;
foreach(@list){
   if (match_test($_)){
      $result = $_;
      $match = 1;
      last;
      }
   }
$match || die("No match.");
say $result," is a match.";

这个例子看起来有点尴尬.我希望Perl能够更干净地处理这个问题.

@R_301_323@

是的,grep是您正在寻找的:

my @results = grep {match_test($_)} @list;

grep返回@list的子集,其中match_test返回true. grep在大多数其他函数语言中称为过滤器.

如果您只想要第一场比赛,请先使用List::Util.

use List::Util qw/first/;

if (my $result = first {match_test($_)} @list) {
    # use $result for something
} else {
    die "no match\n";
}

猜你在找的Perl相关文章