数组 – 如果有一个(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"; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |