perl hash 常見用法

2021-06-03 04:48:38 字數 1261 閱讀 8136

perl hash 常見用法

基本用法

# 初始化 %h為空陣列

%h = {};

# 用陣列初始化%h為 a=>1, b=>2

%h = ('a', 1, 'b', 2);

# 意義同上,只是另一種更形象化的寫法。

%h = ('a'=>1, 'b'=>2);

.得到hash的所有鍵值

# 得到所有keys,順序取決於hash函式,或者說是亂序

@all_keys = keys %h;

# 所有鍵值,是按hash的值從大往小排列的。值的比較是數字比較(比如說,10>9)

@all_keys = sort<=>$h} (keys %h);

# 所有鍵值,是按hash的值從小往大排列的。值的比較是數字比較

@all_keys = sort<=>$h} (keys %h);

# 所有鍵值,是按hash的值從小往大排列的。值的比較是字串比較

#(比如說,『10』 < 『9』)

@all_keys = sort cmp $h} (keys %h);

判斷hash是否包含key

exists($h);

hash的長度

想要知道乙個hash有多少,常見的方法是得到包含所有鍵值的陣列。這個陣列的長度就是hash的長度:<

遍歷乙個hash中所有的

.while (my ($k, $v) = each %h)

reference

$h_ref = /%h; # 獲得乙個hash的reference

%ahash = %;# 把hash reference當成hash用

$value = $h_ref-> # 這個和%h是一樣的

例項:有乙份使用者名稱列表,儲存了 10000 個使用者名稱,沒有重複項;

還有乙份黑名單列表,儲存了 2000 個使用者名稱,格式與使用者名稱列表相同;

現在需要從使用者名稱列表中刪除處在黑名單裡的使用者名稱,要求用盡量快的時間處理。

#!/usr/bin/perl

for(my $i = 0; $i < @arrayn; ++$i) }}

兩層迴圈的話要執行10000*2000次

#!/usr/bin/perl

my %arrayhash;

for(my $i = 0; $i < @arrayn; ++$i)

= 1;

}for(my $i = 0; $i < @arraym; ++$i))}

現在只需執行10000+2000次

perl hash 常見用法

初始化 h為空陣列 h 用陣列初始化 h為 a 1,b 2 h a 1 b 2 意義同上,只是另一種更形象化的寫法。h a 1,b 2 如果key是字串,可以省略引號。下面這行和上面那行是一樣的 h a 1,b 2 用 來訪問 print h n 列印1 h 2b print h n 列印2b 刪除...

Perl Hash用法之入門教程

本文和大家重點討論一下perl hash的用法,雜湊是一種資料結構,和陣列類似,但是,和陣列不同的是,其索引不是數字,而是名字。也就是說,索引 這裡,我們將它叫key 不是數字而是任意的唯一的字串。雜湊是一種資料結構,和陣列類似,可以將值存放到其中,或者從中取回值。但是,和陣列不同的是,其索引不是數...

mysql 常見用法 mysql常見用法

檢視慢日誌 show variables like slow query log show variables like long query time 設定慢日誌記錄什麼樣的sql,預設10s log queries not using indexes 未使用索引的查詢也被記錄到慢查詢日誌中,一般...