加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl map

发布时间:2020-12-16 00:31:04 所属栏目:大数据 来源:网络整理
导读:perl的map函数 perl的map函数的使用: ? 语法 map EXPR,LIST map BLOCK LIST ? 定义和使用 对list中的每个元素执行EXPR或BLOCK,返回新的list。对每一此迭代,$_中保存了当前迭代的元素的值。 ? 返回值 如果返回值存储在scalar标量中,则代表map()返回数组的

perl的map函数

perl的map函数的使用:

?

语法

map EXPR,LIST

map BLOCK LIST
?

定义和使用

对list中的每个元素执行EXPR或BLOCK,返回新的list。对每一此迭代,$_中保存了当前迭代的元素的值。

?

返回值

如果返回值存储在scalar标量中,则代表map()返回数组的元素个数;

如果返回值存储在list中,则代表map()函数的数组;

?

实例1 (将单词首字母大写)

# !/usr/bin/perl?-w

@myNames ? = ?( 'jacob' , ? 'alexander' ? 'ethan' ? 'andrew' );
@ucNames map ( ucfirst ? $numofucNames );

foreach $key ?(? ?){
?
print ? "$keyn" ;
}
;

结果为

Jacob
Alexander
Ethan
Andrew
4

?

实例2 (获得所有的书名中包含的单词,且转化为大写)

my @books ?( 'Prideand?Prejudice' ? 'Masfield?Park' 'Nothanger?Abbey' 'Persuasion' ?? 'Lady?Susan' 'The?Watsons' @words { split / s +/, $_ )} ;
@uppercases uc $upword ? "$upwordn" ;
}

结果为 (Perl map函数的输入数组和输出数组不一定等长,在split起过作用之后,当然@words的长度要比@books长了。)

PRIDEAND
PREJUDICE
EMMA
MASFIELD
PARK
SENSEAND
SENSIBILITY
NOTHANGER
ABBEY
PERSUASION
LADY
SUSAN
SANDITON
THE
WATSONS

?

实例3 (将多余2位的数字提取到新的list)

my @buildnums ?( 'R010' 'W11' 'dd1' );
@nums / d{ 2 }) }? $num ?( ){
??
? "$num?n"
}

$a = 'RRR3ttt';
@yy = $a=~/RRR.*ttt/;
$numofyy = $a=~/RRR.*ttt/;
print "@yyn";
print "$numofyyn" ;

@yy2 = $a=~/(RRR).*(ttt)/;
$numofyy2 = $a=~/(RRR).*(ttt)/;
print "@yy2n";
print "$numofyy2n";
print "$1 $2";

结果为??正则表达式匹配后返回的为数组或长度,取决于表达式中是否有()或者接收的变量类型)

010?
230?
11?
56?
1
1
RRR ttt
1
RRR ttt

?

完!

感谢,Thanks!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读