日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
技術分享利用Perl哈希表建立鍵-值數(shù)據(jù)映射

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

成都創(chuàng)新互聯(lián)是一家專業(yè)提供寧鄉(xiāng)企業(yè)網(wǎng)站建設,專注與成都網(wǎng)站設計、網(wǎng)站建設H5建站、小程序制作等業(yè)務。10年已為寧鄉(xiāng)眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進行中。

Perl基礎:利用Perl哈希表建立鍵-值數(shù)據(jù)映射

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

定義Perl哈希表

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

列表A

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

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

你也可以這樣寫代碼:

列表B

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

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

列表C

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

 輸出結果為:

Aisforapple.

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

列表D

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

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

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

列表E

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

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

列表F

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

 #p#

檢索鍵和數(shù)值

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

列表G

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

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

列表H

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

 計算Perl哈希表的大小

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

列表I

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

 處理Perl哈希表元素

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

列表J

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

 或者,用前面已經(jīng)討論過的for()循環(huán)和keys()函數(shù):

列表K

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

 運用嵌套的Perl哈希表

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

列表L

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

 該代碼返回的結果是:

BatmanfightsThePenguin
SupermanfightsLexLuthor


本文名稱:技術分享利用Perl哈希表建立鍵-值數(shù)據(jù)映射
轉載來于:http://www.5511xx.com/article/dhhchcj.html