Perl基础函数---map
Posted EasyPerl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Perl基础函数---map相关的知识,希望对你有一定的参考价值。
map函数具体使用方法:
map EXPR, LIST
map BLOCK LIST
map函数和grep函数类似, 不过适用场景更多, 功能也更复杂强大。
grep函数返回的是一个包含多有表达式EXPR或者BLOCK为真的列表,通常来说一个元素返回一个或者零个元素。
map函数返回的也是一个列表, 但是是一个包含所有EXPR或者BLOCK计算结果的列表, 也就是说针对每一个元素, map函数得到的可能是一个甚至很多个的元素。
我们来看下面的例子:
my @nums = (33,35,38,66,77);
my @chars = map chr, @nums;
print "$_\n" for @chars;
我们把数字转变成相应的字符, 这里的功能和grep是基本一样的
继续来看:
my @nums = (33,35,38,66,77);
my %chars = map { my $char = chr $_; $_, $char} @nums;
print "$_--->$chars{$_}\n" for keys %chars;
这里我们仍旧把数字转变成相应的字符, 但是我们将返回的内容变成了一队一队的数据对, 赋给了hash。
正如上面的例子block里面是可以包含多个语句的, 只要记住, 最后返回给map的, 是最后一个语句的返回值, 因此, 我们这里返回的是 $_, $char组成的数据对。
需要注意的是, perl是允许通过修改$_值来直接修改元素的, 但请尽量避免如此, 因为他可能会引起很多你无法理解的问题。 在需要进行计算或者修改时, 尽量使用新的临时变量来处理。
以上是关于Perl基础函数---map的主要内容,如果未能解决你的问题,请参考以下文章