本文和大家重點(diǎn)討論一下Perl哈希表的概念,Perl語言和其他編程語言各有各的特點(diǎn),這里和大家分享一下Perl哈希表的概念,其實(shí)Perl哈希表是一種結(jié)構(gòu)。
Perl哈希表
Perl哈希表是一種結(jié)構(gòu)。
key/value.
訪問Perl哈希表元素
$Perl哈希表{$some_key}
當(dāng)給Perl哈希表選擇名字時,最好這樣思考:Perl哈希表元素的名字和key之間可以用for來連接。如thefamily_nameforfredisflintstone.
要引用整個Perl哈希表,使用百分號(%)作為前綴。
?
復(fù)制代碼 代碼如下:
#!/bin/perl???
usewarnings;??
usestrict;??
my$person;??
my%family_name;???
$family_name{"fred"}="flintstone";??
$family_name{"barney"}="rubble";??
foreach$person(qw){??
print"I'veheardof$person$family_name{$person}./n";??
}??
my%some_hash=("foo",35,"bar",12.4,25,"hello","wilma",1.72e30,"betty","bye/n");??
my@array_array=%some_hash=;??
print"@array_array/n";?
?
哈希賦值方法大箭頭符號(=>)
?
復(fù)制代碼 代碼如下:
my%last_name=(??
"fred"=>"flintstion",??
"dino"=>undef,??
"barney"=>"rubble",??
"betty"=>"rubble",??
);?
?
keys函數(shù)會返回此Perl哈希表的所有keys,values含稅將返回所有的values。如果Perl哈希表中沒有元素,則此函數(shù)將返回空列表。
?
復(fù)制代碼 代碼如下:
my@k=keys%last_name;??
my@v=values%last_name;??
my$count=keys%last_name;#scalar-producing,key/valuepairs??
print"thekeyare@k./n";??
print"thevalueare@v./n";??
print"thecountare$count./n";?
?
each函數(shù)
如果想迭代得到Perl哈希表中的每個元素,一個通常的方法是使用each函數(shù),它將返回key/value對的元素對。當(dāng)對同一個Perl哈希表函數(shù)進(jìn)行一次迭代時,將返回下一個key/value對,直到所有的元素均被訪問。
復(fù)制代碼 代碼如下:
my$key;??
my$value;???
while(($key,$value)=each%last_name){???
#foreach(($key,$value)=each%last_name){??
print"$key=>$value./n";??
}??
注意兩種循環(huán)的結(jié)果,原因在于兩種循環(huán)的設(shè)計機(jī)制不同。
?
復(fù)制代碼 代碼如下:
?
foreach$key(sortkeys%last_name){??
$value=$last_name{$key};??
print"$key=>$value./n";??
print"$key=>$last_name{$key}./n";??
}
以上就是Perl哈希表的概念,Perl其實(shí)也挺強(qiáng)大的,在這里,我們還要繼續(xù)學(xué)習(xí)和研究。?