[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 編程技術 > Perl > 正文
Perl變量(3)--關聯數組
不詳 (2001-04-16 16:11:45)

關聯數組和前面說的數組類似,它包含標量數據,可用索引值來單獨選擇這些數據,和數組不同的是, 關聯數組的索引值不是非負的整數而是任意的標量。這些標量稱為Keys,可以在以用檢索數組中的數值。 

關聯數組的元素沒有特定的順序,你可以把它們想象為一組卡片。每張卡片上半部分是索引而下半部分是數值。 

關聯數組是Perl語言中特有的,關聯數組是一個功能強大的數組。使用關聯數組時要在前面加上%號,關聯數組的格式如: 

%ARRAY=(key1,value1,key2,value2,key3,value3); 

每一個key都有一個相對應的值(value)。 

和數組類似,$zmd,@zmd,%zmd之間沒有任何聯系。Perl為對象的不同類型保留獨立的命名空間。 

下面介紹關聯數組的操作: 

在關聯數組中增加、更改一對數據:ARRAY={key}=value; 在關聯數組ARRAY中加上一對key-value,要在關聯數組名稱前加上$號,而且key的名稱要在{}符號之間,最再指定key所對應的value值。如果在這個關聯數組中已經有這個key了.就會更改這個key所對應的value。 

keys(%array)操作符可生成由關聯數組%array中的所有當前關鍵字組成的列表。即返回奇數個元素(第1,3,5,7...個)的列表。 

values(%array)操作符返回由關聯數組%array中所有當前值組成的列表,即返回偶數個列表。 

echo(%array)操作符返回由一個關鍵字和一個值對構成的兩個元素的表。對同一數組再操作時返回下一對值直至結束。若沒有更多的對時,echo()返回空表。 (這在打印全部列表中很有用) 

刪除一對在關聯數組中的數據:delete $ARRAY{key};delete 是 Perl 所提供的函數,作用是刪除關聯數組中的一個key以及這個 key 所對應的 value。使用方法是 在 delete 函數之,指定關聯數組中要刪除的key名稱。 
關聯數組的綜合舉例: 

%fred=(one,"zmd",two,"cxm"); $a=$fred{one};--- #$a等"zmd" 
$b=$fred{two}---#$b等"cxm" 
$fred{two}="yes"--- #%fred=(one,"zmd",two,"yes") 
@number=keys(%fred)--- #@list=(one,two) 
@user=values(%fred)---#@user=("zmd","cxm") 
($number,$name)=echo(%fred)--- #此時$number的值為one,$name的值為"zmd",再執行一次$number為值為two,$name的值為"cxm") 
@a=%fred--- #將關聯數組fred指定給數組a,這時@a=(one,"zmd",two,"cxm") 
%b=@a---#將數組a指定給關聯數組b,這時%b=(one,"zmd",two,"cxm") 
delete $fred{one}---#將關聯數組中key值為one的一對key-value刪除,這時%fred=(two,"cxm") 
%name=()---#把%name關聯數組置空  (http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
Perl 變量(2)--數組 (2001-04-16 16:10:47)
Perl 變量(1)--純變量 (2001-04-16 16:09:49)
 

★  樊強制作 歡迎分享  ★