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