PERL中的雜湊表操作

2021-06-18 21:58:20 字數 1631 閱讀 6877

雜湊表究其實質而言就是一種資料結構,可以隨機訪問,沒有上限,但是不同之處則在於陣列呢,是根據陣列來確定所要求的資料在陣列中的偏移量,而雜湊則是以名字來進行檢

索,或者說作為索引值的,也就是說檢索用的鍵不是數字,而是保證唯一性的字串,即鍵值,鍵值必須保持唯一性!!

需要指出的是,雖然雜湊表的鍵的名稱要求必須唯一,但是對於鍵的值,則是可以相同的。

$family_name="john";

$family_name="rubble";

foreach $person(qw< fred barney >)

."\n";

}這樣就可以隨著使用而定義,開始的時候我在想這樣是不是就跟c++中的結構體類似?但是之後想了想發現,結構體必須在使用之前定義,遠沒有雜湊這樣靈活,雜湊成員的訪問

使用{},不同於陣列的,

也可以動態的建立雜湊元素

$family_name="test";極富靈活性!!!

對於雜湊表中某個元素的訪問類似於陣列,首先是雜湊表名稱,不過其索引應該使用花括號,然後陣列下標被字串代替。

$tmp=$family_name;

對於雜湊中沒有的元素會使用undef最為返回值代替

使用胖箭頭的方式定義雜湊列表

%last_time=(

"fred"=>"hehe",

"dino"=>undef,

"barney"=>"rubble",

"betty"=>"rubble",);#整個列表以乙個額外的逗號結束

foreach (qw)

."\n";

}這裡要注意的是,在使用胖箭頭方式定義雜湊表的時候,應該使用小括號,並不像單個定義雜湊元素時使用大括號的方式

my %hash=("a"=>1,"b"=>2,"c"=>3);

my @k=keys %hash;

#獲得hash表的鍵名稱

foreach(0..(@k-1))

#獲得雜湊表的值

my @m=values %hash;

foreach (0..(@m-1))

exist函式

my %hight=(

"li"=>3,

"zhang"=>5,

"mi"=>5,

);if(exists $hight)#exists函式只是檢查該雜湊表中是否有鍵名是"li",與鍵值無關;}

delete函式

my %hight=(

"li"=>3,

"zhang"=>5,

"mi"=>5,

);if(exists $hight)

;#說明已經不存在該鍵名是li的鍵

}

雜湊函式的遍歷

my %hight=(

"li"=>3,

"zhang"=>5,

"mi"=>5,

);foreach(@k=keys %hight)

."\n";

}

perl 中的雜湊賦值

在perl 中,通過 動態的給雜湊賦值,是最常見的應用場景,但是有些情況下,我們事先知道一些資訊,當需要把這些資訊存放進乙個雜湊的時候,直接給雜湊賦值就好 雜湊的key不用說,就是乙個字串,關鍵是value,大概有下面3種 1 乙個值 就是乙個普通的一維雜湊,直接賦值即可 示例 my hash a ...

雜湊表(雜湊表)的基本操作

首先要說的是 雜湊表又叫雜湊表 雜湊只是英文hash的音譯,雜湊才是標準的翻譯 好吧,下面是源 如果有錯誤,請見諒!head.h include using namespace std 雜湊表又叫 雜湊表 其實音譯才叫做雜湊 typedef int keytype 元素型別定義 typedef st...

Perl中陣列和雜湊表的用法小結(ZZ)

1 二維陣列 a b 1 2 3 c 4 5 6 a 0 b a 1 c 1 print a 0 0 n print a 1 0 n print a 0 0 n print a 1 0 n 2 foreach 2 n will print value of b 2 and c 2 print n w...