什麼是雜湊:雜湊是一種資料結構,類似與陣列,不同之處在於雜湊是用字串而非數字來檢索的
為什麼用雜湊:典型的雜湊應用有
按名字找姓、用主機名找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...