Perl 中的 map 函数

语法

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

功能

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

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

例子

一、 将数字列表转换为相应的字符列表

my @chars = map(chr,@numbers);

二、 对数字列表中的每个元素计算平方,返回平方值的列表

my @quares = map {$_ * $_ } @numbers;

三、返回满足条件的数字的列表

my @numbers = map { $_ > 5 ? $_ : ()} @numbers;

注意

  1. 在BLOCK中$_ 是列表元素的别名,因为可以修改原列表的中元素的值。
  2. 如果列表中的元素不是变量,而在BLOCK中修改了$_的值,将会产生不可预料的结果。
    原文作者:JSON_NULL
    原文地址: https://www.jianshu.com/p/e32d405c0b9d
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞