二、陣列
陣列是標量資料的有序列表。
陣列可以含任意多個元素。最小的陣列可以不含元素,而最大的陣列可以佔滿全部可用記憶體。
陣列實量(array
literal)是位於括號內用逗號分開的一系列值。如:
(1,2,3,4,5)#具有1,2,3,4,5五個數值的陣列
("zmd",1974,173.5)#具有"zmd",1974,173.5三個數值的陣列
()#空陣列
($a,5)#兩個數值:$a的值和5
($a+$b,6)#兩個數值
陣列變數具有單獨的陣列值,要以@打頭而不是$。如:
@zmd
注意@zmd與$zmd沒任何聯絡。perl為物件的不同型別保留獨立的命名空間。
陣列的賦值和標量賦值一樣,也用等號表示。perl根據賦值物件是標量還是陣列變數來確定賦值操作是標量賦值還是陣列賦值。
若陣列實量中只含有變數引用(不是表示式),則此陣列實量也可作為變數使用。它可以用在賦值運算子的左邊。例如:
($a,$b,$c)=(1,2,3) #將1賦給$a,2賦給$2,3賦給$3
如果把數值變數賦給標量變數,則賦給標量變數的就是陣列長度,如:
@zmd=(1,2,3) # 將(1,2,3)賦給@zmd
$a=@zmd # $a為3,即@zmd的陣列個數
陣列元素的訪問和c語言中類似,下標是按順序整數排列的,編號從0開始。
($a,$b,$c)=(1,2,3) #將1賦給$a,2賦給$2,3賦給$3
如果把數值變數賦給標量變數,則賦給標量變數的就是陣列長度,如:
@zmd=(1,2,3) # 將(1,2,3)賦給@zmd
$a=@zmd # $a為3,即@zmd的陣列個數
綜合舉例
@user1=("zmd","cxm");
#將zmd和cxm兩個字串賦給@user1
@user2=@user1;
#這時@user2=@user1=("zmd","cxm")
@user3=("zk",@user1);
#這時@user3=("zk","zmd","cxm")
($one,@user4)=@user3;
#這時$one="zk"
@user1=();
#把@user1清空
@int1=(1,2,3,4,5); $x=@int1;
#將陣列@int1的個數賦給$x純變數,$x=5
$x=$#int1;
#$#這個變數返回陣列最後個數的值(index)$x=4
($x)=@int1;
#$x等於陣列的第乙個個數值$x=1
$b=$int1[0];
#$b等於陣列的第乙個元素值$b=1
$c=@int1[0];
#$c同上$c=1,因些呼叫陣列中值有兩種方法
$int1[0]=3;
#將3這個數值賦給陣列@int的第乙個元素@int1=(3,2,3,4,5)
$int1[0,1]=[7,8];
#將7賦給陣列的第乙個元素將8賦給陣列第二個元素@int1=(7,8,3,4,5)
@int1[0,1]=@int1[1,0];
#將陣列前兩個元素交換@int1(8,7,3,4,5)
($int1[0],$int1[1])=($int1[1],$int1[0]);
#同上@int1=(8,7,3,4,5)
@int2=@int1[0,1];
#int2=(8,7)
$int1[5]=6;
#將6賦給陣列中第六個元素@int1=(1,2,3,4,5,6)
perl 列表和陣列變數詳解
一 列www.cppcns.com表 列表是包含在括號裡的一串行的值,可以為任何數值,也可為空,如 1,5.3 hello 2 空列表 注 只含有乙個數值的列表 如 43.2 與該數值本身 即 43.2 是不同的,但它們可以互相轉化或賦值。列表例 17,var,a string 17,26 17,v...
Perl預設變數
1.arg,常常是乙個預設變數 2.arg,子例程參數列 3.program name,本程式的名字 4.argv 本程式的命令列參數列 5.list separator,陣列內插到雙引號字串中時所用的分隔符,預設為空格 6.ofs,或 output field separator,用於print的...
perl內建變數
以下為個人所知的perl內建變數,如有缺,請發帖新增 當前頁可列印的行數,屬於perl格式系統的一部分 根據上下文內容返回錯誤號或者錯誤串 列表分隔符 列印數字時預設的數字輸出格式 perl直譯器的程序id 當前輸出通道的當前頁號 與上個格式匹配的字串 當前程序的組id 當前程序的有效組id 設定1...