亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Perl > 正文

Perl中哈希Hash用法的入門教程

2020-02-23 19:44:26
字體:
來源:轉載
供稿:網友

你知道什么的hash嗎?相信接觸過Perl編程的小伙伴們對于hash都會有一定的音箱,那么你知道如何使用hash嗎?那么下面我們就跟小編一起去看看Perl中哈希Hash用法的入門教程。

一、什么是Perl Hash

哈希是一種數據結構,和數組類似,可以將值存放到其中,或者從中取回值。但是,和數組不同的是,其索引不是數字,而是名字。也就是說,索引(這里,我們將它叫key)不是數字而是任意的唯一的字符串。

key可以是任意的字符串,你可以使用任何的字符串作為key,但它們是唯一的。
另一種思考hash 的方法是,把它看作一堆數據(a barrel of data),每一個數據都有一個相應的標簽??梢酝ㄟ^標簽訪問此標簽對應的元素。但其中是沒有“第一個”元素的概念的。在數組中,數組元素從0,Perl學習之哈希hash_馬亮的計算機技術1,2 開始編號。但在hash中,沒有確定的順序,因此也沒有第一個元素。只是一些key/value 對的集合。

keys和values均為任意的標量,但keys通常轉換為字符串。因此,如果將表達式50/20 作為keys,則其通常被轉換為3字符的字符串“2.5”。
由于Perl的“沒有不必要的限制”的設計哲學:hash可以是任意大小,從空hash(沒有key/value對),到任何你內存允許的大小。
keys是唯一的,但values可以重復。hash的value可以是數字,字符串,undef,或者它們的混合,但key是唯一的。

為什么使用Perl Hash

可以把hash看作一個簡單的數據庫,其中每一個key下面可以有一塊數據。如果你的任務是關于:“查詢重復的”,“唯一的”,“交叉引用的”,“查詢表”,則hash很可能在這類應用中幫上Perl學習之哈希hash_馬亮的計算機技術你的忙。

二、Perl Hash元素的存取

要訪問hash 元素,可以使用下面的語法:$hash{$some_key}
這和訪問數組元素的方法有些類似,這里下標(key)上使用的是花括號({}),而不是方括號([ ])?,F在key 的表達式是字符串,而非數字。
hash的名字和Perl中其它的標識符的命名規則是一樣的(字母,數字,下劃線組成,但不能由數字開頭)。
訪問不存在的hash元素將得到undef。

1.作為整體的Perl Hash

要引用整個hash,使用百分號(%)作為前綴。
為了方便,hash可以轉換為列表,或者反過來。

2.Perl Hash賦值

可以使用如下的語法在hash 之間拷貝:
%new_hash = %old_hash;
將hash轉變成其它形式更加常見。例如,我們可以將hash反轉:
%inverse_hash = reverse %any_hash;

3.大箭頭符號(=>)

當給hash賦值時,有時并不明顯哪些元素是keys,那些是values,因此發明了大箭頭符號(=>)。在需要逗號的時候,都可以使用大箭頭符號替換。
如:

?

?

my %last_name = (??
"www" => 1,??
"eee" => 2,??
);?

?

三、Perl Hash函數

某些有用的函數可以對整個hash 進行操作。

1.keys和values函數

keys函數會返回此hash的所有keys,values函數將返回所有的values。如果hash中沒有元素,則此函數將返回空列表。
?

?

my %hash = ("a"=>1, "b"=>2, "c"=>3);??
print my @k = keys %hash;??
print my @v = values %hash;?

?

2.each函數

如果想迭代hash的每一個元素,一種通常的方法是使用each函數,它將返回key/value對應的2個元素列表。
當對同一個hash 函數進行一次迭代時,將返回下一個key/value對,直到所有的元素均被訪問。如果沒有更多的key/value對,則each函數將返回空表。
?

?

my %hash = ("a"=>1, "b"=>2, "c"=>3);??
while(($key, $value) = each %hash)??
{??
print "$key => $value/n";??
}?

?

當然,each返回的key/vlaue對,順序是混亂的(它其順序和keys和values函數返回的順序相同)。如果想將其按序排放,可以對它們排序(使用sort)。
?

?

my %hash = ("a"=>1, "b"=>2, "c"=>3, "d"=>4);??
foreach $key (sort keys %hash)??
{??
$value =$hash{$key};??
print "$key => $value/n";??
}?

?

四、Perl Hash的通常用法

1.exists函數

要查看hash中是否存在某個key,可以使用exists函數,如果hash中存在此key,則返回true,與是否有對應的value無關。
?

?

my %hash = ("a"=>1, "b"=>2, "c"=>3, "d"=>4);??
if(exists $hash{'a'})??
{??
print "true";??
}?

?

2.delete 函數

delete函數將某個給定的key(包括其對應的value)從hash中刪除。如果不存在這個key,則什么也不做,不會有警告或者錯誤信息。
?

?

my %hash = ("a"=>1, "b"=>2, "c"=>3, "d"=>4);??
delete $hash{'a'};??
foreach $key (sort keys %hash)??
{??
$value =$hash{$key};??
print "$key => $value/n";??
}?

?

3.Perl Hash 元素的內插

你可以在雙引號的字符串中使用單個hash元素,但不支持整個hash 的內插。

?

?

my %hash = ("a"=>1, "b"=>2, "c"=>3, "d"=>4);??
foreach $key (sort keys %hash)??
{??
print "$key => $hash{$key}/n";??
}??

以上內容就是關于Perl中哈希Hash用法的入門教程,大家要知道哈希在perl是非常重要且常用的,大家要好好掌握哦。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产日韩欧美在线动漫| 91国产精品视频在线| 欧美国产在线视频| 色综合伊人色综合网站| 亚洲日韩中文字幕在线播放| 一区二区在线视频| 国产在线观看一区二区三区| 亚洲free性xxxx护士白浆| 不卡av日日日| 国产精品丝袜高跟| 成人免费看吃奶视频网站| 欧美成人国产va精品日本一级| 欧美日韩中国免费专区在线看| 日韩精品一二三四区| 亚洲免费小视频| 在线电影欧美日韩一区二区私密| 亚洲精品少妇网址| 黄色精品在线看| 国产成人精品一区二区三区| 亚洲毛片一区二区| 国产精品狼人色视频一区| 久久精品成人欧美大片| 欧美性极品少妇精品网站| 777午夜精品福利在线观看| 亚洲性69xxxbbb| 成人免费网站在线| 亚洲免费视频一区二区| 日韩av手机在线观看| 欧美黑人性猛交| 亚洲精品国产精品国自产观看浪潮| 日韩中文字幕国产| 92看片淫黄大片欧美看国产片| 亚洲精品短视频| 久久99久国产精品黄毛片入口| 亚洲天堂成人在线视频| 国产在线视频欧美| 亚洲图片欧美午夜| 欧美一级成年大片在线观看| 国产精品第100页| 国产在线一区二区三区| 最近2019年好看中文字幕视频| 最近2019年好看中文字幕视频| 亚洲欧美综合另类中字| 亚洲欧美综合区自拍另类| 亚洲精品久久久久久久久久久久| 午夜精品久久久久久久99热浪潮| 国产精品综合不卡av| 亚洲一区久久久| 狠狠色狠狠色综合日日五| 国产精品99久久99久久久二8| 国产精品av在线播放| 久久精品99久久久久久久久| 97香蕉久久超级碰碰高清版| 国产一区红桃视频| 色噜噜国产精品视频一区二区| 亚洲资源在线看| 91亚洲一区精品| 国产精品中文久久久久久久| 成人一区二区电影| 日本韩国在线不卡| 日韩综合视频在线观看| 欧美性猛交xxxx富婆| 国产精品毛片a∨一区二区三区|国| 欧美午夜片欧美片在线观看| 欧美一区二区三区图| 国产一区红桃视频| 久久影院模特热| 91国产美女视频| 国产成人免费av电影| 黄色一区二区在线| 久久久久久久爱| 欧美日韩精品二区| 国产97人人超碰caoprom| 国产精品亚洲激情| 久久男人资源视频| 亚洲一区二区三区在线免费观看| 成人久久久久爱| 久久99久久99精品免观看粉嫩| 在线色欧美三级视频| 大量国产精品视频| 欧美成人国产va精品日本一级| 尤物九九久久国产精品的特点| 欧美性xxxxx极品| 色中色综合影院手机版在线观看| 欧美丝袜一区二区三区| 91午夜理伦私人影院| 成人精品久久久| 成人在线免费观看视视频| 欧美日韩精品在线| 国产91精品最新在线播放| 日韩影视在线观看| 成人av在线网址| 中文字幕日韩在线观看| 国产午夜精品麻豆| 综合久久五月天| 亚洲国产精品va在看黑人| 久久精品色欧美aⅴ一区二区| 欧洲一区二区视频| 日韩在线观看免费| 亚洲精品成人久久久| 国产精品美女免费| 国产精品偷伦视频免费观看国产| 岛国av一区二区在线在线观看| 一区二区三区无码高清视频| 亚洲欧美日韩爽爽影院| 国产专区精品视频| 77777亚洲午夜久久多人| 午夜精品一区二区三区在线播放| 国产成人免费91av在线| 久久久之久亚州精品露出| 久久久欧美精品| 成人免费看吃奶视频网站| 色综合视频网站| 久久网福利资源网站| 国产成+人+综合+亚洲欧洲| 国产精品欧美激情在线播放| 欧美日韩激情网| 亚洲精品国产品国语在线| 国产精品综合久久久| 欧美风情在线观看| 亚洲电影成人av99爱色| 日韩中文娱乐网| 亚洲欧美日韩高清| 精品国产福利视频| 日韩av片免费在线观看| 亚洲视频在线播放| 欧美极品少妇全裸体| 国产高清在线不卡| 91精品国产精品| 成人www视频在线观看| 精品成人在线视频| 国内精品久久久久影院 日本资源| 久久人人爽亚洲精品天堂| 久久综合伊人77777蜜臀| 97在线视频国产| 色综合久久88色综合天天看泰| 亚洲精品美女久久久| 国产精品视频男人的天堂| 国产中文日韩欧美| 全球成人中文在线| 色天天综合狠狠色| 精品视频一区在线视频| 中文字幕精品www乱入免费视频| 尤物九九久久国产精品的分类| 美女福利视频一区| 亚洲精品资源美女情侣酒店| 国产suv精品一区二区三区88区| 亚洲男人av在线| 欧美多人乱p欧美4p久久| 国产热re99久久6国产精品| 久久久久九九九九| 日韩高清电影免费观看完整| 日韩精品一区二区三区第95| 国产精品视频一区二区三区四| 奇米4444一区二区三区| 97成人超碰免| 久久综合伊人77777尤物| 亚洲成人网在线观看| 91亚洲va在线va天堂va国| 日韩精品一区二区三区第95| 欧美xxxx14xxxxx性爽| 久久高清视频免费| 亚洲人免费视频| 97碰碰碰免费色视频|