日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

perl map

發布時間:2025/4/14 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 perl 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,?@myNames);
$numofucNames?=?map(ucfirst,?@myNames);

foreach?$key?(?@ucNames?){
?
print?"$key\n";
}
print?$numofucNames;

結果為

Jacob
Alexander
Ethan
Andrew
4

?

實例2 (獲得所有的書名中包含的單詞,且轉化為大寫)

my@books?=?('Prideand?Prejudice','Emma',?'Masfield?Park','Senseand?Sensibility','Nothanger?Abbey', 'Persuasion',??'Lady?Susan','Sanditon','The?Watsons');

my@words?=?map{split(/\s+/,$_)}@books;
my@uppercases?=?map?uc,@words;
foreach?$upword?(?@uppercases?){
?
print?"$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)

#!/usr/bin/perl?-w

my?@buildnums?=?('R010','T230','W11','F56','dd1');
my?@nums?=?map{/(\d{2,})/}?@buildnums;
foreach?$num?(@nums){
??
print?"$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

?

完!

感謝,Thanks!

總結

以上是生活随笔為你收集整理的perl map的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。