perl的map函數

來源:互聯網
上載者:User

標籤:

來源:

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)http://www.CodeHighlighter.com/-->#!/usr/bin/perl -w 2  3 @myNames = (‘jacob‘, ‘alexander‘, ‘ethan‘, ‘andrew‘); 4 @ucNames = map(ucfirst, @myNames); 5 $numofucNames = map(ucfirst, @myNames); 6  7 foreach $key ( @ucNames ){ 8  print "$key\n"; 9 }10 print $numofucNames;

結果為

JacobAlexanderEthanAndrew4

 

執行個體2 (獲得所有的書名中包含的單詞,且轉化為大寫)

1 my@books = (‘Prideand Prejudice‘,‘Emma‘, ‘Masfield Park‘,‘Senseand Sensibility‘,‘Nothanger Abbey‘,2 ‘Persuasion‘,  ‘Lady Susan‘,‘Sanditon‘,‘The Watsons‘);3 4 my@words = map{split(/\s+/,$_)}@books;5 my@uppercases = map uc,@words;6 foreach $upword ( @uppercases ){7  print "$upword\n";8 }

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

PRIDEANDPREJUDICEEMMAMASFIELDPARKSENSEANDSENSIBILITYNOTHANGERABBEYPERSUASIONLADYSUSANSANDITONTHEWATSONS

 

執行個體3 (將多餘2位的數字提取到新的list)

1 my @buildnums = (‘R010‘,‘T230‘,‘W11‘,‘F56‘,‘dd1‘);2 my @nums = map{/(\d{2,})/} @buildnums;3 foreach $num (@nums){4   print "$num \n"5 }

結果

010 230 11 56 

 

執行個體4  匹配的標量和列表上下文傳回值

 1 $a = ‘RRR32Sttt‘; 2 @yy = $a=~/RRR.*ttt/; 3 $numofyy = $a=~/RRR.*ttt/; 4 print "@yy\n"; 5 print "$numofyy\n" ; 6 print "$1"; 7  8 @yy2 = $a=~/(RRR).*(ttt)/; 9 $numofyy2 = $a=~/(RRR).*(ttt)/;10 print "@yy2\n";11 print "$numofyy2\n";12 print "$1 $2";

結果   (Regex匹配後返回的為數組或長度,取決於運算式中是否有()或者接收的變數類型)

11RRR ttt1RRR ttt

運算式中是否有()       接收的變數類型       結果

無              標量     永遠1或0

有              標量     永遠1或0

無              列表     永遠(1或0)

有              列表     結果的列表

 

perl的map函數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.