成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Perl基礎 Perl 哈希表概述

開發(fā) 架構
本文向大家介紹一下Perl 哈希表的概念,Perl 哈希表是一種數(shù)據(jù)結構,和數(shù)組類似,可以將值存放到其中,或者從中取回值。

本文和大家重點討論一下什么是Perl 哈希表的概念,Perl 哈希表和數(shù)組不同,其索引不是數(shù)字,而是名字。也就是說,索引(這里,我們將它叫key)不是數(shù)字而是任意的***的字符串。

Perl基礎 Perl 哈希表

一、什么是Perl 哈希表

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

key可以是任意的字符串,你可以使用任何的字符串作為key,但它們是***的。
另一種思考hash的方法是,把它看作一堆數(shù)據(jù)(abarrelofdata),每一個數(shù)據(jù)都有一個相應的標簽。可以通過標簽訪問此標簽對應的元素。但其中是沒有“***個”元素的概念的。在數(shù)組中,數(shù)組元素從0,1,2開始編號。但在hash中,沒有確定的順序,因此也沒有***個元素。只是一些key/value對的集合。
keys和values均為任意的標量,但keys通常轉(zhuǎn)換為字符串。因此,如果將表達式50/20作為keys,則其通常被轉(zhuǎn)換為3字符的字符串“2.5”。
由于Perl的“沒有不必要的限制”的設計哲學:hash可以是任意大小,從空hash(沒有key/value對),到任何你內(nèi)存允許的大小。
keys是***的,但values可以重復。hash的value可以是數(shù)字,字符串,undef,或者它們的混合,但key是***的。

為什么使用Perl 哈希表

可以把hash看作一個簡單的數(shù)據(jù)庫,其中每一個key下面可以有一塊數(shù)據(jù)。如果你的任務是關于:“查詢重復的”,“***的”,“交叉引用的”,“查詢表”,則hash很可能在這類應用中幫上你的忙。

二、Perl 哈希表元素的存取

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

1.作為整體的hash

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

2.Perl 哈希表賦值

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

3.大箭頭符號(=>)

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

三、Perl 哈希表函數(shù)

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

1.keys和values函數(shù)

keys函數(shù)會返回此hash的所有keys,values函數(shù)將返回所有的values。如果hash中沒有元素,則此函數(shù)將返回空列表。
my%hash=("a"=>1,"b"=>2,"c"=>3);
printmy@k=keys%hash;
printmy@v=values%hash;

2.each函數(shù)

如果想迭代hash的每一個元素,一種通常的方法是使用each函數(shù),它將返回key/value對應的2個元素列表。
當對同一個hash函數(shù)進行一次迭代時,將返回下一個key/value對,直到所有的元素均被訪問。如果沒有更多的key/value對,則each函數(shù)將返回空表。
my%hash=("a"=>1,"b"=>2,"c"=>3);
while(($key,$value)=each%hash)
{
print"$key=>$value\n";
}
當然,each返回的key/vlaue對,順序是混亂的(它其順序和keys和values函數(shù)返回的順序相同)。如果想將其按序排放,可以對它們排序(使用sort)。
my%hash=("a"=>1,"b"=>2,"c"=>3,"d"=>4);
foreach$key(sortkeys%hash)
{
$value=$hash{$key};
print"$key=>$value\n";
}

四、Perl 哈希表的通常用法

1.exists函數(shù)

要查看hash中是否存在某個key,可以使用exists函數(shù),如果hash中存在此key,則返回true,與是否有對應的value無關。
my%hash=("a"=>1,"b"=>2,"c"=>3,"d"=>4);
if(exists$hash{'a'})
{
print"true";
}

2.delete函數(shù)

delete函數(shù)將某個給定的key(包括其對應的value)從hash中刪除。如果不存在這個key,則什么也不做,不會有警告或者錯誤信息。
my%hash=("a"=>1,"b"=>2,"c"=>3,"d"=>4);
delete$hash{'a'};
foreach$key(sortkeys%hash)
{
$value=$hash{$key};
print"$key=>$value\n";
}

3.Perl 哈希表元素的內(nèi)插

你可以在雙引號的字符串中使用單個hash元素,但不支持整個hash的內(nèi)插。
my%hash=("a"=>1,"b"=>2,"c"=>3,"d"=>4);
foreach$key(sortkeys%hash)
{
print"$key=>$hash{$key}\n";
}
<type="text/javascript"><type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js">

【編輯推薦】

  1. Perl語言編程之Perl 哈希表篇
  2. 經(jīng)驗總結 Perl的安裝配置步驟
  3. Perl語言中的“指針”用法解析
  4. 揭秘Perl變量中Perl純變量用法
  5. 深入解析Perl內(nèi)部函數(shù)的使用
責任編輯:佚名 來源: csdn.net
相關推薦

2010-07-13 16:20:21

Perl 哈希表

2010-07-16 13:10:36

Perl哈希表

2010-07-16 10:53:30

Perl基礎

2010-07-21 09:50:51

Perl調(diào)試

2010-07-16 13:57:13

Perl哈希表

2010-07-20 16:05:07

Perl包

2010-07-20 13:44:02

Perl方法

2010-07-19 09:28:37

Perl關聯(lián)數(shù)組

2010-07-16 10:44:54

Perl數(shù)組

2010-07-16 12:50:45

Perl語言

2010-07-16 17:38:12

Perl包

2010-07-13 13:27:13

Perl復雜數(shù)據(jù)結構

2010-07-19 10:52:39

Perl簡單變量

2010-07-13 15:43:57

Perl語言

2010-07-19 09:08:38

Perl模塊

2010-07-19 09:52:04

Perl標量

2010-07-21 13:59:59

Perl引用

2010-07-16 13:50:53

Perl哈希表

2022-02-22 19:04:01

Perl編程語言

2010-07-13 10:21:19

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品日韩高清伦字幕搜索 | 久久久久亚洲 | 国产日韩在线观看一区 | 欧美一区二区三区久久精品 | 日本一区二区三区在线观看 | 天天综合网永久 | 亚洲久久在线 | 一本一道久久a久久精品蜜桃 | 国产精品久久久久久久一区二区 | 日本韩国欧美在线观看 | 色网站视频 | 国产精品久久久久久久午夜 | 国产精品久久久久久久久久了 | 国产精品一区二区三区99 | 国产精品亚洲视频 | 一级毛片免费 | 国产精品久久久久久久久久三级 | 国产精品美女久久久av超清 | 亚洲视频三 | 久久精品一级 | 国产亚洲网站 | 在线国产视频 | 日本国产精品视频 | 久久久www成人免费无遮挡大片 | 成人一区二| 91麻豆精品国产91久久久更新资源速度超快 | 综合久久99 | 亚洲一区二区精品视频 | 欧美国产日韩在线 | 婷婷国产一区 | 久久伊人亚洲 | 日韩高清一区 | 日韩欧美三级电影 | 日韩在线小视频 | 一区二区视屏 | 亚洲在线一区 | 国产一区二区在线免费观看 | 草草视频在线观看 | 日韩中文字幕视频在线观看 | 国产成人精品午夜视频免费 | 欧美国产日韩一区 |