Perl基礎(chǔ) Perl數(shù)組學(xué)習(xí)指南
本文和大家重點討論一下Perl數(shù)組的概念,主要包括基本的Perl數(shù)組和一些與Perl數(shù)組相關(guān)的函數(shù)等內(nèi)容,另外Perl中所有Perl數(shù)組變量都以@開頭,相信通過本文的學(xué)習(xí)你對Perl數(shù)組的概念有全面的認(rèn)識。
Perl數(shù)組
Perl中所有Perl數(shù)組變量都以@開頭
(1)基本Perl數(shù)組
定義和使用
my@list=("a","b","c");
$list[0],$list[1],$list[2],下標(biāo)從0開始
Perl數(shù)組中元素個數(shù):$#array_name,返回Perl數(shù)組中最后一個變量的索引=Perl數(shù)組元素個數(shù)-1
空Perl數(shù)組$#array_name=-1
Perl數(shù)組表達(dá)式:
@array=(1,$data,"sam");
@array_dest=@array_source;
@full_message=($prefix1,$prefix2,@message);//在message前面加了兩個元素,賦值full_message
打印Perl數(shù)組:
print“@array”,打印結(jié)果中間用空格分隔,去掉雙引號,中間沒有分隔
帶有“黑洞”的Perl數(shù)組:
如果Perl數(shù)組中有沒有賦值的元素,則為undef,例如:
my@array=(1);
$array[5]=4;//中間的幾個下標(biāo)對應(yīng)的都是undef
引用詞運(yùn)算符qw:
my@array=qw(tomdickharry);//中間除了空格沒有其他分隔符
相當(dāng)于my@array=("tom","dick","harry");
(2)一些Perl數(shù)組相關(guān)函數(shù):
push(@array,$value):向結(jié)尾添加一個元素
pop(@array):取走最后的元素并返回
unshift(@array,$value):在Perl數(shù)組起始添加一個元素
shift(@array)或者shift@array:取走第一個元素并返回(函數(shù)都可以省略括號)
(3)處理Perl數(shù)組的一部分:
可以用一套索引,例如:
my@new_array=@array[1,3,5];
@array[1,0]=@array[0,1];
范圍運(yùn)算符,例如:
@arry[0..9]=((0)x10);//重復(fù)10次0
(4)splice函數(shù)
splice可以刪除或者替換Perl數(shù)組的一部分,格式為:
splice@array,$offfset//刪除從offset開始到末尾,offset為下標(biāo),offset為負(fù)數(shù)則從結(jié)尾算起
例如:
my@array=(0,1,2,3,4,5);
splice(@array,-2);
將得到0123
splice會返回最后刪除的函數(shù)。
splice另一種形式:
splice@array,$offset,$length,刪除length個元素
第三種形式:
splice@array$offset,$length,REPLACEMENTS
刪掉后,從offset開始添加REPLACEMENTS里的元素,REPLACEMENTS可以是標(biāo)量或者Perl數(shù)組
(5)split和join函數(shù)
@array=splitRegExpr,$string//將$string按照RegExpr指定的分隔符來分解放到@array中
$string=join$union,@array//將@array中元素用$union連接,賦值給@string
(6)Perl數(shù)組排序
sort函數(shù),默認(rèn)按照ASCII順序排序:
my@sorted=sort@array;
按數(shù)字順序排序:
@result=sort{$a<=>$b},@unsorted;
(7)@ARGV變量
包含程序的命令行參數(shù),與c中不一樣,第一個參數(shù)不是程序的名字
程序的名字在變量$0(數(shù)字0)中
【編輯推薦】
- 深入解析Perl中Perl數(shù)組的使用
- Perl文件句柄概念詳解
- 實例解析Perl守護(hù)進(jìn)程用法
- Perl變量中Perl數(shù)組概念詳解
- 術(shù)語匯編 Perl變量中Perl關(guān)聯(lián)數(shù)組用法解析