網路管理語言 Perl 入門與實作: | ||
---|---|---|
<<< Previous | 4. Perl 的資料型態 | Next >>> |
雜湊很類似於陣列,但陣列是以數字做索引,雜湊則以字串做索引,這是最大的不同。雜湊的索引,我們稱為鍵(key),其對應的內容,我們稱為值(value),雜湊就是由一對對的 "鍵/值" 組合而成。換言之,雜湊是把某一套資料對應到另一套資料。比如:一組身份證字號對應到一組人的姓名;藉由找出某一個身份證字號,便可找到對應人的姓名。反之亦然。這就是雜湊的妙用。
雜湊的定義由:% 加上變數名稱而組成,比如:%all,範例如下:
%all=( "t111222333" => "王大空", "s444555666" => "李小二", "k333111555" => "陳大一" ); 上式定義了 %all 這個雜湊,共有三對鍵/值。 其中, $all{"t111222333"} 代表 "王大空" $all{"s444555666"} 代表 "李小二" $all{"k333111555"} 代表 "陳大一" 換言之,欲存取雜湊的值,只要使用 $雜湊名{鍵} 即可。 另,以下是另一種定義雜湊的方式,結果同上: %all=("t111222333", "王大空", "s444555666", "李小二", "k333111555", "陳大一"); 上式中,每二個二個配成鍵/值,形成雜湊。再如下例: %MMM=("M", "a", "N", "b", "A", "c", "K", "d", "G", "e"); 等同於: %MMM=( M => a, N => b, A => c, K => d, G => e ); 最後一對可以不用 , 號。 也可以在設定值的過程,動態產生雜湊: $HOSTNAME{"163.26.200.1"} = "dns.tnc.edu.tw"; 這樣就產生了一個雜湊:%HOSTNAME,目前擁有一對鍵/值:163.26.200.1 對應至 dns.tnc.edu.tw |
以下這個例子,在迴圈中動態產雜湊 %ppp:
for ($i=1; $i<=10; $i++) { $ppp{"kkk$i"}="ooo$i"; $tmp="kkk$i"; print "kkk" . $i . "===>" . "$ppp{$tmp}", "\n"; } # 輸出結果: kkk1===>ooo1 kkk2===>ooo2 kkk3===>ooo3 kkk4===>ooo4 kkk5===>ooo5 kkk6===>ooo6 kkk7===>ooo7 kkk8===>ooo8 kkk9===>ooo9 kkk10===>ooo10 |
<<< Previous | Home | Next >>> |
4.3 雜湊 | Up | 4.3.2 reverse 一個雜湊 |