perl小技巧之 判断某元素是否在数组中(grep)
https://blog.csdn.net/xxm524/article/details/50603237
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";
- }
结果:
好的心态+正确的方法
浙公网安备 33010602011771号