Perl的數據結構中最有趣的一個特性是哈希(hash),它使得在數據片段之間建立鍵—值(key-value)關聯成為可能。雖然這些哈希要遠遠比普通系統中以數字索引的數組用途更廣,但是往往也會使初學者不知所措。這就是要寫本篇文章的原因所在——它將告訴你如何創建Perl的哈希,如何插入、刪除要素,以及如何創建嵌套哈希和利用循環來處理哈希。
定義哈希
首先,什么是哈希?從本質上來說,它是以字符串索引的數組。也就是說,你要使用字符串標簽而不用數字來存取各個元素。下面是一個例子:
列表 A
#!/usr/bin/perl
# define hash
%alphabet = ('a' => 'apple',
'b' => 'ball',
'c' => 'cat',
'x' => 'xylophone');
上面的幾行用四對鍵—值關聯建立了一組Perl 哈希。可以注意到,變量名前面的符號%表示它是一個哈希,箭頭用來指出鍵—值關系。
你也可以這樣寫代碼:
列表 B
#!/usr/bin/perl
# define hash
%alphabet = ('a', 'apple', 'b', 'ball', 'c', 'cat', 'x', 'xylophone');
在定義了一個哈希以后,你就可以用定義后的名稱對獨立的要素進行存取。例如,看下面的代碼:
列表 C
#!/usr/bin/perl
# define hash
%alphabet = ('a', 'apple', 'b', 'ball', 'c', 'cat', 'x', 'xylophone');
# access hash value
print "A is for " . $alphabet;
輸出結果為:
A is for apple.
要清除哈希,只需簡單地把它賦值于一個空的數據集,就像下面的例子: