您的位置:首页 > 其它

perl小技巧之 判断某元素是否在数组中(grep)

2016-01-28 21:11 633 查看
perl 中判断是否在数组中没有专用的接口, 而Python中有 in 这样好使的接口。
同样不想使用foreach、while遍历,找来一个好用的接口替代grep(其他如map也用过,感觉没这个好用,纯属个人使用习惯)。
grep简介

grepBLOCKLIST

grepEXPR,LIST
BLOCK表示一个code块,通常用{}表示;EXPR表示一个表达式,通常是正则表达式。原文说EXPR可是任何东西,包括一个或多个变量,操作符,文字,函数,或子函数调用。

LIST是要匹配的列表。
Perl grep函数对列表里的每个元素进行BLOCK或EXPR匹配,它遍历列表,并临时设置元素为$_。在列表上下文里,grep返回匹配命中的所有元素,结果也是个列表。在标量上下文里,grep返回匹配命中的元素个数。

use strict;
my @arr = ( "aaa","bbb","ccc","ddd","eee","fff", "ddd");
my $dd = "ddd";

if(grep /^$dd$/, @arr ){
print "OK\n";
}

if(grep { $_ eq $dd } @arr){
print "OK\n";
}
my @a = grep { $_ eq $dd } @arr;
my $b = grep { $_ eq $dd } @arr;
print "$b\n\n";
foreach(@a){
print "$\n";
}
结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: