Perl 中的 grep 函数

语法

grep {BLOCK} @list;
grep  EXPR , @list;

功能

遍历@list,对@list中的每个元素调用BLOCK或进行EXPR测试。并返回一个列表,列表中的元素是能够使得BLOCK或EXPR返回true的元素。在标题上下文件中返回的是列表中元素的个数。

注:@list中的每个元素可能会在结果列表中产生0个或一个元素。

grep是通过判断列表中每个元素是否满足正则表达式或者BLOCK块来返回true和false,再根据true和false来决定最终的返回列表。所以grep多时用来过滤元素用的。

例子:删除注释行

  my @chars = grep(!/^#/,@code);
  my @chars = grep {!/^#/} @code;  

注意

  1. 在BLOCK中$_ 是列表元素的别名,因为可以修改原列表的中元素的值。
  2. 如果列表中的元素不是变量,而在BLOCK中修改了$_的值,将会产生不可预料的结果。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,463评论 19 139
  • $(”p”).addClass(css中定义的样式类型); 给某个元素添加样式 $(”img”).attr({sr...
    专注寒冰三千岁阅读 3,430评论 0 4
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,955评论 18 399
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,686评论 1 92
  • 操作符 操作符优先级 在像 1 + 2 * 3 这样的表达式中, 2 * 3 被首先计算, 因为中缀操作符 * ...
    焉知非鱼阅读 5,330评论 0 1