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中修改了$_的值,将会产生不可预料的结果。
    原文作者:JSON_NULL
    原文地址: https://www.jianshu.com/p/0e3c18012812
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞