Perl中的陣列操作

2021-06-10 17:01:17 字數 1972 閱讀 9477

<1>陣列的長度:

如果把陣列變數賦值給標量變數,那麼賦給標量變數的就是陣列的長度:

$a = @array;#標量變數$a中存放的是陣列@array的長度,即:陣列中元素的個數;

($a,$b,$c) = (1,2,3);  #則把1賦值給$a,把2賦值給$b,把3賦值給$c;

陣列中的最後乙個元素的下標索引由陣列的特殊變數$#arrayname決定;用「$#+陣列名」表示乙個特殊變數,這個變數中存放的是陣列中最後乙個儲存單元的下標索引值;$#arrayname又稱為最後單元索引值,它總是表示陣列中最後乙個儲存單元的下標值;

所以可以使用這個特殊變數「$#陣列名」也可以計算陣列中元素的個數:

#arraylength = $#arrayname

+ 1;

與陣列中最後乙個儲存單元對應的是第乙個儲存單元,perl中使用陣列的特殊變數「$[」來表示陣列中第乙個儲存單元的下標值,即:陣列中第乙個儲存單元的索引值;而且可以通過修改這個特殊變數的值來改變陣列中第乙個儲存單元的下標索引值,期於的儲存單元的下標索引值則是在特殊變數「$[」的值的基礎上順序累加1得到;

陣列的特殊變數「$# + 陣列名」表示陣列中最後乙個儲存單元的下標索引值,perl中可以通過改變這個特殊變數的值來增加或刪除陣列中的元素;

例如:要在陣列@array的末尾填加n個新元素的空間時,可以這樣做:

$#array += n;或@array[$#array + 1]  = 值;

這就說明可以使用特殊變數「$# + 陣列名」來設定陣列的長度。perl允許在陣列中隨時填加新的陣列單元,這個時候系統會在新加入陣列單元時自動擴充套件陣列的儲存空間和長度。所以說,perl中的陣列是動態陣列;這在處理小的陣列的時候比較方便,但是需要處理的資料量比較大的時候,卻會使程式執行的速度大大減慢。這是每加入乙個新的陣列單元,系統都會自動擴充套件陣列的空間和長度,而擴充套件操作是需要時間的,所以程式會變慢;如果可以事先知道需要處理的陣列的長度,那麼可以通過設定特殊變數「$# + 陣列名」來初始化陣列的儲存單元空間,而後再使用陣列,這樣就會提高資料的處理效率;

<2>增加和刪除陣列中的元素:

通過增加特殊變數「$# + 陣列名」的值可以為陣列增加新的元素,此時perl會自動擴充套件陣列的儲存空間:

$array[$#array++] = $newvar;

通過減小特殊變數「$# + 陣列名」的值可以刪除陣列中的元素,此時perl會自動**陣列的儲存空間:

$#array++ ;   #刪除最後乙個元素

$#array += n;#刪除最後n個元素

如果要把陣列置為空陣列,則只需要把「$# + 陣列名」設定為-1即可:$#array = -1;

perl中預設的陣列單元下標編號為從0開始,依次遞增,但是如果程式有特殊需要的話,可以通過改變陣列的特殊變數「 $[」的值來改變陣列儲存單元的下標索引的起始值。$[可以設定為任意數值,剩餘的編號仍然在這個值的基礎上依次遞增;

<3>陣列資料的讀取:

讀取乙個元素的值:$a  =  $array[$index];或  $a  =  @array[$index];

讀取部分元素的值:@subarray  = @array[$startindex .. $endindex];#這個也是讀取子陣列的方法;

注意:訪問讀取陣列@array中的元素時,如果給出的下標$index超過了陣列@array的下標範圍,就說明要訪問的元素不存在,此時就返回乙個未定義值或空值(none/null);

<4>子陣列:

在讀取陣列元素值的時候,可以讀取陣列中的一部分元素做為另外乙個新的陣列使用,這個新的陣列稱為子陣列或陣列分塊;子陣列的規則與陣列相同;

子陣列使用字元「@」和「[ ]」共同定義:@subarray  = @parentarrayname[startindex .. endindex];

引用陣列中元素的時候,可以引用陣列中不連續的單元,也可以不按順序來引用陣列單元或給陣列單元賦值;

PERL的陣列操作

此次我們說下,關於perl中陣列的頭尾操作,當然這是在不使用索引的情況下,類似與彙編當中,push和pop是在尾部,或者說在陣列的右邊進行的新增或者刪除操作,演示 如下 array 5.9 fred pop array 原陣列array中是 5 6 7 8 9,pop之後則是5 6 7 8 prin...

perl的陣列操作

list b 生成連續的一列數字或字母 b my numbers 1.100 my chars a.z b 新增或者刪除元素 b shift 移除陣列的第乙個元素 unshift 新增乙個元素到陣列的最後 push 新增乙個元素到陣列的第乙個元素 pop 去除陣列的最後乙個元素。table func...

Perl中陣列的使用

perl中陣列的使用 下一節 陣列是perl裡面一種非常有用的東西。我們可以通過下面的方式定義陣列 a hello great cipher b 1,2,3,4,5,6,7 b的定義方式還可以寫成下面的形式 b 1.7 這種方式對於需要1到10000的初始值得陣列真實太重要了。b a z 也是可以的...