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