加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 23:29:37 所属栏目:大数据 来源:网络整理
导读:是否存在Perl习惯用法,用于在符合特定条件的数组中查找项目(如果有)? my $match = 0;foreach(@list){ if (match_test($_)){ $result = $_; $match = 1; last; } }$match || die("No match.");say $result," is a match."; 这个例子看起来有点尴尬.我希望Per
是否存在Perl习惯用法,用于在符合特定条件的数组中查找项目(如果有)?

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

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

解决方法

是的,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 matchn";
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读