Perl語言入門 雜湊

2021-06-21 22:58:30 字數 1248 閱讀 1791

什麼是雜湊:雜湊是一種資料結構,類似與陣列,不同之處在於雜湊是用字串而非數字來檢索的

為什麼用雜湊:典型的雜湊應用有

按名字找姓、用主機名找ip位址、按ip位址找主機名、按單詞統計出現次數、按身份證號找出姓名等

訪問雜湊元素:語法為$hash

如$family_name="flintstone";

雜湊元素會因賦值而產生,訪問不存在的值會得到undef

訪問整個雜湊:要指代整個雜湊,可以用%作為字首

對雜湊賦值會帶來列表賦值的上下文,列表的元素是鍵值對,如下

%some_hash=("foo",35,"bar",12.4,2.5,"hello","wilma",1.72e30,"betty","bye\n");

在列表上下文中,雜湊會自動變成一些簡單的鍵值對,如下

@any_array=%some_hash;

上述變換稱為雜湊鬆綁,並且其順序不一定與賦值時相同(鍵值一定是對應的)

雜湊賦值:乙個不常用但合法的操作,%new_hash=%old_hash;

%inverse_hash= reverse %any_hash;##將導致鍵值互換,即原來的鍵變成了現在的某個值

胖箭頭:在雜湊賦值時可以用胖箭頭取代逗號,使得鍵值更容易區分,如下:

my %last_name=;#最後的逗號可有可無

keys和values函式:keys函式能返回雜湊的鍵列表,而values函式能返回值列表

my %hash=("a"=>1,"b"=>2,"c"=>3);

my @k= keys %hash;

#@k包含a、b、c

my @v= values %hash;#@v包含1、2、3

在標量上下文中,這兩個函式返回的是雜湊中鍵值對的個數

each函式:羅列雜湊的每個鍵值對,實際使用時,唯一適合使用each的地方就是while迴圈,如下

while(($key,$value)=each %hash)

注意each返回的鍵值對也是亂序的

exists函式:要檢查雜湊中是否有某個鍵,可以使用exists函式

if(exists $books)

delete函式:從雜湊中刪除指定的鍵及其相對應的值,如沒有這樣的鍵,直接結束

注意這不是將undef存入雜湊值

雜湊值內插:可以將單一雜湊元素內插到雙引號引起的字串中

foreach $person (sort keys %books)) items\n"; }

}整個雜湊的內插是不支援的

Perl語言程式設計 雜湊

在學習perl語言的過程中,遇到了乙個別的語言中並不常見的概念 雜湊。雜湊表並不是perl語言特有的資料結構,但是perl語言中的雜湊具有得天獨厚的優勢。雜湊與陣列非常相似,但是也有著非常明顯的不同。在乙個陣列當中,陣列的每乙個元素包含乙個值,同時每乙個元素都有它對應的下標。簡單些說,就是陣列是 值...

Perl語言入門 Perl變數簡介

在編寫perl程式時,需要準備好兩樣工具 乙個文字編輯器和乙個perl直譯器,前者用來書寫 後者用來完成程式的編譯 解釋和執行工作。perl變數支援三種基本資料型別 標量 陣列和關聯陣列。1 標量只能儲存單個值 單個字串或單個數字。必須以美元符號 開頭。示例 number 15 name judy ...

perl語言入門筆記

perl記事本 1.yu x 3 print yuyuyu 2.print yu jian s 加 促使變數不會變成 ages 3.4 2 4的平方 4.1.5 1,2,3,4,5 5.qw yu jian s book 簡潔,更少輸入 6.yu,jian jian,yu 值互換 7.yu,jian...