成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

技術分享 利用Perl哈希表建立鍵-值數據映射

開發 架構
你對Perl語言中Perl哈希表的概念是否了解,Perl的數據結構中最有趣的一個特性是Perl哈希表(hash),它使得在數據片段之間建立鍵—值(key-value)關聯成為可能。

本文和大家重點討論一下利用Perl哈希表建立鍵-值數據映射問題,這里告訴你如何創建Perl哈希表,如何插入、刪除要素,以及如何創建嵌套PerlPerl哈希表和利用循環來處理Perl哈希表。

Perl基礎:利用Perl哈希表建立鍵-值數據映射

Perl的數據結構中最有趣的一個特性是Perl哈希表(hash),它使得在數據片段之間建立鍵—值(key-value)關聯成為可能。雖然這些Perl哈希表要遠遠比普通系統中以數字索引的數組用途更廣,但是往往也會使初學者不知所措。這就是要寫本篇文章的原因所在——它將告訴你如何創建Perl哈希表,如何插入、刪除要素,以及如何創建嵌套PerlPerl哈希表和利用循環來處理Perl哈希表。

定義Perl哈希表

首先,什么是Perl哈希表?從本質上來說,它是以字符串索引的數組。也就是說,你要使用字符串標簽而不用數字來存取各個元素。下面是一個例子:

列表A

  1. #!/usr/bin/Perl  
  2.  
  3. #definehash  
  4. %alphabet=('a'=>'apple',  
  5. 'b'=>'ball',  
  6. 'c'=>'cat',  
  7. 'x'=>'xylophone');  
  8.  

 上面的幾行用四對鍵—值關聯建立了一組PerlPerl哈希表??梢宰⒁獾剑兞棵懊娴姆?表示它是一個Perl哈希表,箭頭用來指出鍵—值關系。

你也可以這樣寫代碼:

列表B

  1. #!/usr/bin/Perl  
  2.  
  3. #definehash  
  4. %alphabet=('a','apple','b','ball','c','cat','x','xylophone');  
  5.  

 在定義了一個Perl哈希表以后,你就可以用定義后的名稱對獨立的要素進行存取。例如,看下面的代碼:

列表C

  1. #!/usr/bin/Perl  
  2.  
  3. #definehash  
  4. %alphabet=('a','apple','b','ball','c','cat','x','xylophone');  
  5.  
  6. #accesshashvalue  
  7. print"Aisfor".$alphabet;  
  8.  

 輸出結果為:

Aisforapple.

要清除Perl哈希表,只需簡單地把它賦值于一個空的數據集,就像下面的例子:

列表D

  1. #!/usr/bin/Perl  
  2.  
  3. #(re)initializehash  
  4. %alphabet=();  
  5.  

 插入、改變和刪除Perl哈希表元素

你可以在一個Perl哈希表中插入一個新元素(或者更改一個現有的Perl哈希表),只需要給與之相對應的鍵設置一個新的數值就行了。如果這個鍵不存在,它將會被創建。下面是一個例子:

列表E

  1. #!/usr/bin/Perl  
  2.  
  3. #definehash  
  4. %alphabet=('a','apple','b','ball','c','cat','x','xylophone');  
  5.  
  6. #addnewelement  
  7. $alphabet='dog';  
  8.  
  9. #changeexistingelement  
  10. $alphabet='arrow';  
  11.  
  12. #accesshashvalue  
  13. print"Aisfor".$alphabet;  
  14.  

 你可以用delete()函數刪除一對鍵—值對,就像下面這樣:

列表F

  1. #!/usr/bin/Perl  
  2.  
  3. #definehash  
  4. %alphabet=('a','apple','b','ball','c','cat','x','xylophone');  
  5.  
  6. #deleteelement  
  7. delete$alphabet;  
  8.  

 #p#

檢索鍵和數值

如果你覺得一個Perl哈希表的鍵和數值有用,需要進一步處理,Perl允許將其提取到單獨的數據結構中。你可以用函數keys()將一個Perl哈希表的鍵返回成為一個數字索引的數組。下面是一個例子:

列表G

  1. #!/bin/Perl  
  2.  
  3. #definehash  
  4. %alphabet=('a'=>'apple','b'=>'bat','c'=>'cat');  
  5.  
  6. #getandprinthashkeys  
  7. @keyskeys=keys(%alphabet);  
  8. print"@keys";  
  9.  

 或者,你可以用函數values()獲得一個具有Perl哈希表值的數組,如下:

列表H

  1. #!/bin/Perl  
  2.  
  3. #definehash  
  4. %alphabet=('a'=>'apple','b'=>'bat','c'=>'cat');  
  5.  
  6. #getandprinthashvalues  
  7. @vals=values(%alphabet);  
  8. print"@v";  
  9.  

 計算Perl哈希表的大小

計算Perl哈希表大小的最簡單方法就是用上述的keys()函數,將Perl哈希表中的鍵提取到一個數組中,然后檢索得到數組的大小,操作方法如下:

列表I

  1. #!/bin/Perl  
  2.  
  3. #definehash  
  4. %alphabet=('a'=>'apple','b'=>'bat','c'=>'cat');  
  5.  
  6. #printnumberofhashelements  
  7. print"Thehashhas".scalar(keys(%alphabet))."elements";  
  8.  

 處理Perl哈希表元素

運用while()循環處理一個Perl哈希表中的所有元素也比較容易。下面是一個簡單的例子:

列表J

  1. #!/usr/bin/Perl  
  2.  
  3. #definehash  
  4. %alphabet=('a','apple','b','ball','c','cat','x','xylophone');  
  5.  
  6. #loopoverhash  
  7. while(($key,$value)=each(%alphabet)){  
  8. print"$keyisfor$value";  
  9. }  
  10.  

 或者,用前面已經討論過的for()循環和keys()函數:

列表K

  1. #!/usr/bin/Perl  
  2.  
  3. #definehash  
  4. %alphabet=('a','apple','b','ball','c','cat','x','xylophone');  
  5.  
  6. #loopoverhash  
  7. for$k(keys(%alphabet)){  
  8. print$k."isfor".$hash."";  
  9. }  
  10.  

 運用嵌套的Perl哈希表

Perl也允許在一個Perl哈希表(或數組)中再嵌入一個Perl哈希表(或數組)。這樣就為構建長而復雜的數據結構提供了很大的靈活性,下面是一個例子:

列表L

  1. #!/usr/bin/Perl  
  2.  
  3. %movies=(  
  4. 'black'=>{'hero'=>'Batman','villain'=>'ThePenguin'},  
  5. 'red'=>[{'hero'=>'Spiderman','villain'=>'GreenGoblin'},  
  6. {'hero'=>'Superman','villain'=>'LexLuthor'}]  
  7. );  
  8.  
  9. #retrieveandprintvalues  
  10. print$movies."fights".$movies."";  
  11.  
  12. print$movies[1]."fights".$movies[1]."";  
  13.  

 該代碼返回的結果是:

BatmanfightsThePenguin
SupermanfightsLexLuthor

【編輯推薦】

  1. Perl哈希表用法解析
  2. Perl語言中的五大變量類型
  3. 實例解析Perl守護進程用法
  4. Perl模式匹配經驗總結
  5. Perl學習筆記 Perl變量的認識

 

責任編輯:佚名 來源: man.ddvip.com
相關推薦

2010-07-13 16:34:34

Perl 哈希表

2010-07-16 13:10:36

Perl哈希表

2010-07-13 16:20:21

Perl 哈希表

2010-07-16 13:57:13

Perl哈希表

2010-07-15 15:21:07

Perl線程

2010-07-16 13:50:53

Perl哈希表

2010-07-19 09:28:37

Perl關聯數組

2010-05-26 15:39:36

SVN服務

2021-11-05 10:07:13

Redis哈希表存儲

2010-07-20 16:00:09

Perl模塊

2022-10-27 08:28:06

哈希散列算法

2010-07-16 14:30:25

Perl數組

2010-07-19 13:42:04

Perl函數

2019-07-15 16:10:00

技術研發指標

2010-07-06 15:48:46

UML圖形

2022-06-26 06:32:28

MySQL數據庫維護

2010-05-25 14:54:18

2018-01-08 07:15:18

2010-07-26 15:17:51

Perl解析XML文件

2021-04-29 10:08:10

數據結構哈希表
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本黄色不卡视频 | 殴美黄色录像 | 欧美性久久 | 久久精品二区亚洲w码 | 久草青青草 | 久久精品国产99国产 | 精品一区二区在线观看 | 91九色porny首页最多播放 | 狠狠爱免费视频 | 免费一区二区三区 | 国产精品美女 | 精品久久国产 | 91精品国产综合久久香蕉麻豆 | 成人在线视 | 在线观看亚洲专区 | 91最新入口| 成人美女免费网站视频 | 日本在线视频一区二区 | www.日韩| 一区二区久久 | 精品美女 | 给我免费的视频在线观看 | 久久精品16| 黄色网址在线免费观看 | 国产区视频在线观看 | www.成人.com| 精品久久久久久久久久久久久久 | 日韩免费在线 | 免费1区2区3区 | 91性高湖久久久久久久久_久久99 | 亚洲精品一区二区三区蜜桃久 | 国产亚洲精品一区二区三区 | 中文字幕在线一区 | 色网在线看| 久久久久国产一区二区三区不卡 | 99久久免费精品国产免费高清 | 91一区二区三区 | 韩国久久精品 | 日韩欧美中文字幕在线观看 | 日韩www| 欧美猛交|