一、雜湊變數
雜湊變數又稱關聯陣列;與普通的數組一樣,也可以使用下標來訪問其中的資料元素;不同的是,雜湊變數的下標不僅僅可以是非負整數,而且也可以是其它類型的簡單變數或變數值,也就是說,雜湊變數的下標索引可以是任意類型的簡單變數或變數值,稱為關鍵字;雜湊變數以字元“%”開頭;每個關鍵字都與一個值對應;
雜湊變數的建立有兩種方式:使用數組的建立方式和通過關聯運算子“=>”的方式;
%Hash = (Key1,Value1,Key2,Value2,Key3,Value3,Key4,Value4,... ,KeyN,ValueN);
或
%Hash = (Key1=>Value1,Key2=>Value2,Key3=>Value3,Key4=>Value4,... ,KeyN=>ValueN);
使用第一種方式的時候,數組中的元素結構一定必須是Key-Value對,數組元素的數量一定是偶數的;第二種方式也遵循這個規則,但是使用符號“=>”可使程式更易懂;
雜湊變數的關鍵字Key是一個直接數,通常使用最多的就是用字串直接數來作為雜湊變數的關鍵字,也可以使用數字作為雜湊變數的關鍵字;
雜湊變數的單元值用以“$”開頭的標量變數讀取;Perl中,為了區分引用雜湊變數單元值和陣列變數單元值,在單元索引周圍使用不同的符號;雜湊變數的下標可以是任何簡單值或標量值,所以,雜湊變數在單元索引周圍使用一對花括弧“{}”來標記,而普通的數組則是使用一對方括弧“[]”來標記;
二、雜湊變數的操作函數
1、@KeyList = keys(%Hash):返回雜湊變數%Hash中的所有關鍵字,以列表的方式返回;
2、@ValueList = values(%Hash):返回雜湊變數%Hash中所有的值,以列表的方式返回;
3、($Key,$Value) = each(%Hash)函數:用於返回雜湊變數%Hash中的一個Key-Value對,以列表的方式返回;
這個函數常用於迴圈中遍曆雜湊遍曆中的元素,這種方式是最簡單的方式;如:
while(($Key,$Value) = each(%Hash))
{
#各種操作......
}
4、$RetDelete = delete($Hash{Key}):用於刪除雜湊變數%Hash中指定的元素,並把它作為傳回值;
注意:一定要使用delete()函數來刪除雜湊變數中的元素,這是唯一的做法;不要嘗試使用push() 、pop()、shift()、unshift()等函數對雜湊變數進行操作,因為雜湊變數中元素的位置是隨即的;
5、exists()函數:用於判斷雜湊變數中是否存在某個元素,若存在,則返回非零值(真),否則返回零值(假);如:
if(exists($Hash{Key}))
{
printf("Key Exists/n");
}
else
{
printf("Key doesn't Exists/n");
}