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返回匹配命中的元素个数。
同样不想使用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"; }结果:
相关文章推荐
- Dynamics CRM 2015/2016 Web API:Unbound Function 和 Bound Function
- javascript indexOf startWith
- Geometric Progression---cf 567C(求组合方式,map离散)
- Python 8.1 多进程
- UI_完整通讯录
- c语言中,逗号运算符的问题
- CentOS6.x设置memcached开启自启动
- udp协议简单实现登录功能
- WEB开发中路径的问题
- Android滑动冲突--代码
- 《笨办法学Python》 第26课手记
- ITOO4.1之Memcached实践篇
- JavaSE019_反射应用之动态代理
- 保存状态的session方式
- apache2.4开启gzip无法实现304缓存的
- Stripies(POJ 1862 贪心)
- runloop概念
- 面向对象编程(五)——构造方法
- python项目之 增加博客访问量
- 抓包工具