Perl中map函数如何使用

Perl中map函数如何使用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

Perl map函数使用

Perl里面的Perl map函数是一种道具,可以让你的函数或者表达式,很方便地施用到一系列对象上去。

◆Perl map函数的语法

Perl map函数BLOCKLIST
Perl map函数EXPR,LIST
BLOCK是一个用{}包围的代码块。EXPR可以是子函数名、正则表达式等。LIST是输入列表。

简单地说,Perl map函数就是起了一个替代foreach循环的作用,Perl map函数会把数组LIST中的元素挨个取出,放到系统变量$_中,然后调用BLOCK去处理。值得强调的是,除非有很特殊的理由,不要去修改$_的值,因为修改$_就是直接改了原始数组里的元素!BLOCK处理过的结果由Perl map函数返回,仍然是一个数组。

◆一个例子:计算一系列文件大小

my@sizes=Perl map函数{-s$_}@filenames;
上面例子用-s操作取得一些文件的大小,存到数组中去。

◆是不是说Perl map函数的输入数组和输出数组一定等长呢?不一定的,看这个

my@books=('PrideandPrejudice','Emma','MasfieldPark','SenseandSensibility','NothangerAbbey','Persuasion','LadySusan','Sanditon','TheWatsons');

现在取出书名里面所有用到的单词,并且全部转换成大写

my@words=Perl map函数{split(/\s+/,$_)}@books;
my@uppercases=Perl map函数uc,@words;
在split起过作用之后,当然@words的长度要比@books长了。

◆再举一个Perl map函数嵌套使用的例子:矩阵的转置

useData::Dumper();  my@matrix=([a,b,c,d],[e,f,g,h],[i,j,k,l]);  printDumper(\@matrix);  my@transposed=Perl map函数{$x=$_;  [Perl map函数{$matrix[$_][$x]}0..$#matrix];  }0..$#{$matrix[0]};  printDumper(\@transposed);

看完上述内容,你们掌握Perl中map函数如何使用的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注本站行业资讯频道,感谢各位的阅读!

相关推荐:

Python map filter reduce 区别解析

map、filter、reduce的核心区别是:map一对一转换元素,filter按条件筛选子集,reduce累积计算得单值;三者均不修改原数据,返回惰性对象(reduce除外),体现函数式编程思想。 这三个函数都是Python中处理可迭代对象的高阶函数,核心区别在于:map用于逐个转换元素,fil...

Python 使用 map 与 filter 的现实意义

应优先使用列表推导式而非map和filter,因其更直白、易调试、性能略优;仅在需惰性求值、复用纯函数或流式处理时才考虑map/filter。 map和filter在真实代码里到底该不该用 多数人写map和filter是为了“看起来更函数式”,但实际项目中,它们常让逻辑变难读、调试变困难、性能无优势...

Python 多进程 multiprocessing 里 Pool.map 怎么传复杂参数?

Pool.map仅接受单个可迭代参数,需用functools.partial预绑定固定参数或包装函数解包元组;starmap不支持关键字参数且灵活性低;状态对象需改无状态或换ProcessPoolExecutor。 Pool.map只接受单个可迭代参数,不能直接传多个参数 这是最常踩的坑:Pool....

perl和python区别是什么

Python更适合新项目和通用场景,Perl在日志处理、正则密集型及遗留系统中仍有优势。两者语法、数据结构、生态差异显著,选择取决于具体任务需求。 Perl和Python都是老牌脚本语言,但设计哲学、使用场景和日常写法差异明显。选哪个不取决于“谁更好”,而要看手头任务要什么。 语法风格和代码可读性 ...

vue怎么获取map中的值

本篇内容介绍了“vue怎么获取map中的值”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!具体方法如下:1.使用Object方法获取map中的key和value值<template> &lt...

C++利用map实现并查集的方法

这篇文章将为大家详细讲解有关C++利用map实现并查集的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。并查集(Union-Find)是一种树型的数据结构,用于处理一些不相交集合(DisjointSets)的合并及查询问题。并查集存在两个操作(1.Union联合...

怎么实现Perl正则表达式匹配

这篇文章主要为大家展示了“怎么实现Perl正则表达式匹配”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么实现Perl正则表达式匹配”这篇文章吧。Perl正则表达式详解Perl正则表达式有三种形式:匹配、替换和转换。接下来对每一个表达式给出详尽解释。Pe...

如何使用perl脚本批量生成反向互补序列

这篇文章将为大家详细讲解有关如何使用perl脚本批量生成反向互补序列,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。有时候我们需要得到序列的反向互补序列,可以用下面的脚本来批量处理序列。用法:perl  fasta_Reverse_complem...