Perl函數集-數組和Perl列表函數解析
本文和大家重點討論一下Perl函數集-數組和Perl列表函數的概念,Perl語言中每種函數都有各自的特點和用法,這里向大家簡單介紹一些Perl函數的用法。
Perl函數集-數組和Perl列表函數
Perl函數名 grep
調用語法 @foundlist=grep(pattern,@searchlist);
解說 與同名的UNIX查找工具類似,grepPerl函數在列表中抽取與指定模式匹配的元素,參數pattern為欲查找的模式,返回值是匹配元素的列表。
例子 @list=("This","is","a","test");
@foundlist=grep(/^[tT]/,@list);
結果 @foundlist=("This","test");
Perl函數名 splice
調用語法 @retval=splice(@array,slipelements,length,@newlist);
解說 拼接Perl函數可以向列表(數組)中間插入元素、刪除子列表或替換子列表。參數skipelements是拼接前跳過的元素數目,length是被替換的元素數,newlist是將要拼接進來的列表。當newlist的長度大于length時,后面的元素自動后移,反之則向前縮進。因此,當length=0時,就相當于向列表中插入元素,而形如語句
splice(@array,-1,0,"Hello");
則向數組末尾添加元素。而當newlist為空時就相當于刪除子列表,這時,如果length為空,就從第skipelements個元素后全部刪除,而刪除***一個元素則為:splice(@array,-1);這種情況下,返回值為被刪去的元素列表。
Perl函數名 shift
調用語法 element=shift(@arrayvar);
解說 刪去數組***個元素,剩下元素前移,返回被刪去的元素。不加參數時,缺省地對@ARGV進行操作。
Perl函數名 unshift
調用語法 count=unshift(@arrayver,elements);
解說 作用與shift相反,在數組arrayvar開頭增加一個或多個元素,返回值為結果(列表)的長度。等價于splice(@array,0,0,elements);
Perl函數名 push
調用語法 push(@arrayvar,elements);
解說 在數組末尾增加一個或多個元素。等價于slice(@array,@array,0,elements);
Perl函數名 pop
調用語法 element=pop(@arrayvar);
解說 與push作用相反,刪去列表***一個元素,并將其作為返回值,當列表已空,則返回“未定義值”(即空串)。
Perl函數名 split
調用語法 @list=split(pattern,string,maxlength);
解說 將字符串分割成一組元素的列表。每匹配一次pattern,就開始一個新元素,但pattern本身不包含在元素中。maxlength是可選項,當指定它時,達到該長度就不再分割。
Perl函數名 sort
調用語法 @sorted=sort(@list);
解說 按字母次序給列表排序。
Perl函數名 reverse
調用語法 @reversed=reverse(@list);
解說 按字母反序給列表排序。
Perl函數名 map
調用語法 @resultlist=map(expr,@list);
解說 此Perl函數在Perl5中定義,可以把列表中的各個元素作為表達式expr的操作數進行運算,其本身不改變,結果作為返回值。在表達式expr中,系統變量$_代表各個元素。
例子 1、@list=(100,200,300);
@results=map($_+1,@list);
2、@results=map(&mysub($_),@list);
結果 1、(101,201,301)
2、無
Perl函數名 wantarray
調用語法 result=wantarray();
解說 Perl中,一些內置Perl函數的行為根據其處理簡單變量還是數組有所不同,如chop。自定義的子程序也可以定義這樣兩種行為。當子程序被期望返回列表時,此Perl函數返回值為非零值(真),否則為零值(假)。
例子
- 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:}
- 結果 $program
- true
- false
- $
【編輯推薦】