perl hash 常見用法

2021-05-26 02:26:40 字數 2038 閱讀 7299

# 初始化 %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

# 刪除key用delete

delete$h;

# 從$h刪除'b'

undef

%h

# 得到所有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)

;

exists($h

);

想要知道乙個hash存放多少資料

$hash_size

=keys

%h# 把%h的長度放到$hash_size中

print

scalar kes %h,"

;/n";

# 列印%h的長度。這裡用了scalar來返回陣列長度。

while(my

($k,$v

)=each%h)

reference類似於c/c++的指標

$h_ref

=/%h

;# 獲得乙個hash的reference

%ahash=%

;# 把hash reference當成hash用

$value

=$h_ref

->

# 這個和%h是一樣的

一般都是傳遞乙個reference到函式

%h=(

);$h=

1;foo(

/%h)

print$h,

";/n"

;;# 列印出2。這個值來自於函式foo()

sub foo ,"

;/n";;

# 列印出1

$h->=2

;}

函式可以返回hash

sub foo =1

;return%h;

}my%h= foo();

print";

$h/n";;

#列印出 1

但是這樣等於把整個hash從%fh複製到了%h,效率比較低。可以考慮返回hash的引用:

sub foo =1

;return

/%fh;}

my$hr

= foo();

print";

$hr->/n"

;;#列印出 1

my%h=%

# 如果就是想複製,也可以用這種方法

不用擔心在sub foo裡的%fh是區域性變數,perl會自動管理記憶體。它會發現%fh被$hr引用,就不會清理%fh的記憶體,並且$hr失效後釋放記憶體

perl hash 常見用法

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 所有鍵值,是...

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 未使用索引的查詢也被記錄到慢查詢日誌中,一般...