perl的map函式

2022-08-05 14:21:22 字數 2494 閱讀 6799

perl的map函式的使用:

語法map expr, list    這個當中有,

map block list    這個當中沒有,

定義和使用

對list中的每個元素執行expr或block,返回新的list。對每一此迭代,$_中儲存了當前迭代的元素的值。

返回值如果返回值儲存在scalar標量中,則代表map()返回陣列的元素個數;

如果返回值儲存在list中,則代表map()函式的陣列;

例項1 (將單詞首字母大寫)

1 code highlighting produced by actipro codehighlighter (freeware)>#

!/usr/bin/perl -w23

@mynames = ('

jacob

', '

alexander

', '

ethan

', '

andrew');

[email protected] = map(ucfirst, @mynames);5

$numofucnames = map(ucfirst, @mynames);6

7foreach

$key ( @ucnames)10

print

$numofucnames;

結果為

jacob

alexander

ethan

andrew

4

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

1

[email protected] = ('

prideand prejudice

','emma

', '

masfield park

','senseand sensibility

','nothanger abbey',2

'persuasion

', '

lady susan

','sanditon

','the watsons');

[email protected] = [email protected];5

[email protected] = map

uc,@words;6

foreach

$upword ( @uppercases

)

結果為 (perl map函式的輸入陣列和輸出陣列不一定等長,在split起過作用之後,當然@words的長度要比@books長了。)

prideand

prejudice

emma

masfield

park

senseand

sensibility

nothanger

abbey

persuasion

lady

susan

sanditon

thewatsons

例項3 (將多餘2位的數字提取到新的list)

1

[email protected] = ('

r010

','t230

','w11

','f56

','dd1');

[email protected] = map)/} @buildnums;3

foreach

$num (@nums

)

結果

010

23011

56

例項4  匹配的標量和列表上下文返回值

1

$a = '

rrr32sttt';

[email protected] = $a=~/rrr.*ttt/;

3$numofyy = $a=~/rrr.*ttt/;

4print

"@yy\n";

5print

"$numofyy\n";

6print"$1

";78

@yy2 = $a=~/(rrr).*(ttt)/;

9$numofyy2 = $a=~/(rrr).*(ttt)/;

10print

"@yy2\n";

11print

"$numofyy2\n";

12print

"$1 $2

";

結果(正規表示式匹配後返回的為陣列或長度,取決於表示式中是否有()或者接收的變數型別)

1

1rrr ttt

1rrr ttt

表示式中是否有()接收的變數型別       結果

無              標量     永遠1或0

有              標量     永遠1或0

無              列表     永遠(1或0)

有              列表     結果的列表

perl的array和map hash

一 array 1 例項 usestrict usewarnings my myarray 123 hello 456 guy foreac...

perl語言中map與grep用法

1 map用法 語法 map expr list map block list 語義 讓expr或者block內容作用於列表中的每一個元素...

Perl 的 們

當前程序號 上一條命令出錯 所返回的錯誤資訊 儲存前一次 system 或者 反引號全音的命令的返回值 arr 為陣列 arr 的最後一個索...