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 " $key\n ;
}
;
结果为
Jacob
Alexander
Ethan
Andrew
4
实例2 (获得所有的书名中包含的单词,且转化为大写)
my @books PrIDeand Prejudice emma MasfIEld Park Senseand Sensibility Nothanger Abbey Persuasion Lady Susan Sanditon The Watsons @words { split /\ s +/, $_ )} ;@uppercases uc $upword $upword\n ;
} 结果为 (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 T230 W11 F56 dd1 );@nums / \ d{ 2 }) } $num ( ){
$num \n
}
$a = 'RRR3ttt';
@yy = $a=~/RRR.*ttt/;
$numofyy = $a=~/RRR.*ttt/;
print "@yy\n";
print "$numofyy\n" ;
@yy2 = $a=~/(RRR).*(ttt)/;
$numofyy2 = $a=~/(RRR).*(ttt)/;
print "@yy2\n";
print "$numofyy2\n";
print "$1 $2";
010 230 11 56 1 1 RRR ttt 1 RRR ttt
总结以上是内存溢出为你收集整理的perl的map函数全部内容,希望文章能够帮你解决perl的map函数所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)