Perl函數(shù)集-數(shù)組和Perl列表函數(shù)解析
本文和大家重點(diǎn)討論一下Perl函數(shù)集-數(shù)組和Perl列表函數(shù)的概念,Perl語(yǔ)言中每種函數(shù)都有各自的特點(diǎn)和用法,這里向大家簡(jiǎn)單介紹一些Perl函數(shù)的用法。
Perl函數(shù)集-數(shù)組和Perl列表函數(shù)
Perl函數(shù)名 grep
調(diào)用語(yǔ)法 @foundlist=grep(pattern,@searchlist);
解說(shuō) 與同名的UNIX查找工具類似,grepPerl函數(shù)在列表中抽取與指定模式匹配的元素,參數(shù)pattern為欲查找的模式,返回值是匹配元素的列表。
例子 @list=("This","is","a","test");
@foundlist=grep(/^[tT]/,@list);
結(jié)果 @foundlist=("This","test");
Perl函數(shù)名 splice
調(diào)用語(yǔ)法 @retval=splice(@array,slipelements,length,@newlist);
解說(shuō) 拼接Perl函數(shù)可以向列表(數(shù)組)中間插入元素、刪除子列表或替換子列表。參數(shù)skipelements是拼接前跳過(guò)的元素?cái)?shù)目,length是被替換的元素?cái)?shù),newlist是將要拼接進(jìn)來(lái)的列表。當(dāng)newlist的長(zhǎng)度大于length時(shí),后面的元素自動(dòng)后移,反之則向前縮進(jìn)。因此,當(dāng)length=0時(shí),就相當(dāng)于向列表中插入元素,而形如語(yǔ)句
splice(@array,-1,0,"Hello");
則向數(shù)組末尾添加元素。而當(dāng)newlist為空時(shí)就相當(dāng)于刪除子列表,這時(shí),如果length為空,就從第skipelements個(gè)元素后全部刪除,而刪除***一個(gè)元素則為:splice(@array,-1);這種情況下,返回值為被刪去的元素列表。
Perl函數(shù)名 shift
調(diào)用語(yǔ)法 element=shift(@arrayvar);
解說(shuō) 刪去數(shù)組***個(gè)元素,剩下元素前移,返回被刪去的元素。不加參數(shù)時(shí),缺省地對(duì)@ARGV進(jìn)行操作。
Perl函數(shù)名 unshift
調(diào)用語(yǔ)法 count=unshift(@arrayver,elements);
解說(shuō) 作用與shift相反,在數(shù)組arrayvar開(kāi)頭增加一個(gè)或多個(gè)元素,返回值為結(jié)果(列表)的長(zhǎng)度。等價(jià)于splice(@array,0,0,elements);
Perl函數(shù)名 push
調(diào)用語(yǔ)法 push(@arrayvar,elements);
解說(shuō) 在數(shù)組末尾增加一個(gè)或多個(gè)元素。等價(jià)于slice(@array,@array,0,elements);
Perl函數(shù)名 pop
調(diào)用語(yǔ)法 element=pop(@arrayvar);
解說(shuō) 與push作用相反,刪去列表***一個(gè)元素,并將其作為返回值,當(dāng)列表已空,則返回“未定義值”(即空串)。
Perl函數(shù)名 split
調(diào)用語(yǔ)法 @list=split(pattern,string,maxlength);
解說(shuō) 將字符串分割成一組元素的列表。每匹配一次pattern,就開(kāi)始一個(gè)新元素,但pattern本身不包含在元素中。maxlength是可選項(xiàng),當(dāng)指定它時(shí),達(dá)到該長(zhǎng)度就不再分割。
Perl函數(shù)名 sort
調(diào)用語(yǔ)法 @sorted=sort(@list);
解說(shuō) 按字母次序給列表排序。
Perl函數(shù)名 reverse
調(diào)用語(yǔ)法 @reversed=reverse(@list);
解說(shuō) 按字母反序給列表排序。
Perl函數(shù)名 map
調(diào)用語(yǔ)法 @resultlist=map(expr,@list);
解說(shuō) 此Perl函數(shù)在Perl5中定義,可以把列表中的各個(gè)元素作為表達(dá)式expr的操作數(shù)進(jìn)行運(yùn)算,其本身不改變,結(jié)果作為返回值。在表達(dá)式expr中,系統(tǒng)變量$_代表各個(gè)元素。
例子 1、@list=(100,200,300);
@results=map($_+1,@list);
2、@results=map(&mysub($_),@list);
結(jié)果 1、(101,201,301)
2、無(wú)
Perl函數(shù)名 wantarray
調(diào)用語(yǔ)法 result=wantarray();
解說(shuō) Perl中,一些內(nèi)置Perl函數(shù)的行為根據(jù)其處理簡(jiǎn)單變量還是數(shù)組有所不同,如chop。自定義的子程序也可以定義這樣兩種行為。當(dāng)子程序被期望返回列表時(shí),此Perl函數(shù)返回值為非零值(真),否則為零值(假)。
例子
- 1:#!/usr/local/bin/perl
- 2:
- 3:@array=&mysub();
- 4:$scalar=&mysub();
- 5:
- 6:submysub{
- 7:if(wantarray()){
- 8:print("true\n");
- 9:}else{
- 10:print("false\n");
- 11:}
- 12:}
- 結(jié)果 $program
- true
- false
- $
【編輯推薦】
- Perl語(yǔ)言中Perl函數(shù)用法
- Perl文件句柄概念詳解
- Perl函數(shù)手冊(cè)專家指導(dǎo)
- Perl基礎(chǔ) Perl數(shù)組學(xué)習(xí)指南
- 技術(shù)分享 詳解Perl函數(shù)的參數(shù)接收方法