第六章 哈希
1.哈希
哈希就是一種數據結構,可以容納很多值,並隨機存取.是很多的鍵值對,鍵是字符串且唯一,但是鍵可以對應多個值(值可以重複).鍵和值都是任意的標量.
1.哈希
哈希就是一種數據結構,可以容納很多值,並隨機存取.是很多的鍵值對,鍵是字符串且唯一,但是鍵可以對應多個值(值可以重複).鍵和值都是任意的標量.
值可以是數字,字符串,undef.
2.訪問hash元素
2.訪問hash元素
3.訪問整個哈希
- $family_name{"fred"}
對hash賦值會帶來列表賦值的上下文,列表的元素應該是鍵值對
- %family_name
3種賦值方法:
%family_name = ("foo",35,"bar",12.4); %family_name = qw/foo 35 bar 12.4/; %family_name = 用胖箭頭; |
# 數字和字符串會根據需要自動轉換
%new_hash = %old_hash;
反轉hash,如果多個值,則後面的鍵覆蓋前面的
%new_hash = reverse %old_hash;
哈希鬆綁(列表上下文)
@any_array = %family_name;
說明鬆綁後輸出不一定是當初賦值的順序.但是鍵對應值是固定的
%new_hash = reverse %old_hash;
哈希鬆綁(列表上下文)
@any_array = %family_name;
說明鬆綁後輸出不一定是當初賦值的順序.但是鍵對應值是固定的
- hash賦值直觀的寫法
- my %family_name = (
- "foo" => 35,
- "bar" => 12.4,
- );
4.哈希函數
返回鍵列表
keys %hash
返回值列表
values %hash
返回鍵的個數
my $counts = keys %hash;
print scalar(keys %hash);
返回值得個數
my $counts = values %hash;
布爾判斷
if(%hash)
# 只要hash不爲空就返回真
5.each函數
每次返回一組鍵值對
返回鍵列表
keys %hash
返回值列表
values %hash
返回鍵的個數
my $counts = keys %hash;
print scalar(keys %hash);
返回值得個數
my $counts = values %hash;
布爾判斷
if(%hash)
# 只要hash不爲空就返回真
5.each函數
每次返回一組鍵值對
- while (($key,$value)= each %hash) {
- print "$key => $value\n";
- }
# 到返回空列表時循環結束
# 不知道鍵對應多個值時會什麼樣
檢查某個鍵是否存在
# 不知道鍵對應多個值時會什麼樣
檢查某個鍵是否存在
- if (exists $hash{"diao"})
# 返回真則鍵diao存在
刪除指定的鍵和它的值
刪除指定的鍵和它的值
- delete $hash{"diao"}
# 假如鍵不存在,它直接結束,不會給出任何提示信息。