perl中的map和grep一些例子,有需要的朋友可以参考下。
一、map
语法:
map EXPR, LIST
map BLOCK, LIST
语义:
对于LIST中的每个元素执行EXPR或者BLOCK,如果返回值存储在list中,则表示处理后的list,若返回值存储在scalar中,则表示处理后的list中元素个数。
给大家举几个例子吧。
例1:单词首字母大写
sub test {
my @names = (
'jacob',
'alexander',
'ethan',
'andrew',
);
my @new_names = map(ucfirst, @names);
foreach my $name (@new_names) {
print $name, "n";
}
}
例2:打印数组元素
print 相当于 print $_
例3:替换数组元素
对于数组中每个元素,如果其值是undef,那么将其替换位x。
二、grep
grep的语法格式与map完全一样,不过grep是通过判断列表中每个元素是否满足表达式或者块来返回true和false,再根据true和false来决定最终的返回列表。所以grep多时用来过滤元素用的。
例1:找出一组单词中的纯数字单词
sub test {
my @words = (
'hello',
'123',
'B51',
'123abc',
'8',
);
my @numbers = grep { /^d+$/ } @words;
例2:取数组中下标为奇数的元素
@odd中值分别是1,5,6
分析:$#nums表示数组nums最后一个元素的下标,grep { $_ & 1} 取奇数下标,@nums[]取下标为奇数的元素。
您可能感兴趣的文章:
perl 用grep map求交集、并集、补集的例
python中map可以这样用
perl map函数的学习和使用
有关perl的map函数及实例
Perl map 函数应用实例
perl map用法详解
perl map和grep的实例教程