解析三大Perl變量用法
本文和大家重點(diǎn)討論一下Perl變量的概念,在Perl中Perl變量有三種,分別是純Perl變量,數(shù)組,和關(guān)聯(lián)數(shù)組。那么這三種Perl變量有什么特點(diǎn)和作用呢,請(qǐng)看本文詳細(xì)介紹。
Perl變量
Perl有三種Perl變量:
純Perl變量(ScalarVarible)
數(shù)組(Array)
關(guān)聯(lián)數(shù)組(Associativearray)
一、純變量
又稱標(biāo)量Perl變量,是Perl處理的最簡單的數(shù)據(jù)類型。標(biāo)量可以是數(shù)字(如2,3或2.5e6),也可以是字符串(如“hello”和“網(wǎng)上學(xué)園”)。
Perl中的標(biāo)量Perl變量以美元符號(hào)$和一個(gè)字母開始,以后可以是字母、數(shù)字和下劃線,大小寫有區(qū)別,而且所有字母、數(shù)字和下劃線都有效。如:
$a和$A是不同的Perl變量;
$this_is_a_long_variable_1和
$this_is_a_long_variable_2是不同的Perl變量;
Perl中的Perl變量可以通過操作符(如+或.等)來產(chǎn)生新的Perl變量。你可以從文件和設(shè)備中讀取Perl變量,也可以將其輸出。
使用純量Perl變量時(shí)要在前面加上$符號(hào),注意:指定的純Perl變量是一個(gè)字符的話,就要加上""雙引號(hào)或單引號(hào);如果是數(shù)值的話,就不用加上""這個(gè)符號(hào)。
標(biāo)量數(shù)據(jù)又可以分為數(shù)字和字符串兩種:
數(shù)字
可分為整型Perl變量和浮點(diǎn)Perl變量。
整型Perl變量:(如2,-200,3568等)。Perl支持8進(jìn)制和16進(jìn)制Perl變量,8進(jìn)制以0開頭(如0255,表示8進(jìn)制的255),16進(jìn)制以0x或0X開頭(如-0x1a,代表負(fù)的1A)
實(shí)型Perl變量:(如2.5,-6.3e5,-2.3-e6等)。
字符串
最短的字符串可以沒字符,最長可以把你的內(nèi)存填滿,這與Perl的“無內(nèi)置限制”的原則一致。
字符串有兩種格式:單引字符串和雙引字符串。
單引字符串(single-quotedstring):就是用單引號(hào)括起來的一串字符。該單引字符串不是字符串的一部分。引號(hào)中可以插入任何字符。只有兩種情況例外,一種是中間插入單引號(hào),并在前面有一反斜杠;一種是字符串有兩個(gè)連著的反斜杠。
雙引字符串(double-quotedstring):就是用雙引號(hào)括起來的一串字符,其作用類似于C語言。
雙引字符串中反斜杠轉(zhuǎn)義表
標(biāo)量Perl變量的運(yùn)算符
1、賦值運(yùn)算符
如:$a=23;#將23賦值給$a
$b=$a=23;#將23賦值給$a和$b
$b=3+($a=2);#將2賦值給$a,再加3將值賦給$b,即$b為5
2、二元賦值運(yùn)算符
如:$a=+3;#等同于$a=$a+3
這與C語言中基本相同。
3、自增自減運(yùn)算符
如:$a++;#等同于$a=$a+1
這與C語言中基本相同。
4、chop()運(yùn)算符
如:$a="hello";
chop($a);#此時(shí)$a的值為"hell"。
這對(duì)于從屏幕獲取文本后去除換行符很有用。
如:$a=<STDIN>;#獲取文本
chop($a);#去除最后的換行符。
這兩行可合并為:
chop($a=<STDIN>);
5、字符串的標(biāo)量插入值
如:$a="zmd";
$b="hello!$a";
$b的值為"hello!zmd"。
綜合示例
二、數(shù)組
數(shù)組是標(biāo)量數(shù)據(jù)的有序列表。
數(shù)組可以含任意多個(gè)元素。最小的數(shù)組可以不含元素,而最大的數(shù)組可以占滿全部可用內(nèi)存。
數(shù)組實(shí)量(arrayliteral)是位于括號(hào)內(nèi)用逗號(hào)分開的一系列值。如:
(1,2,3,4,5)#具有1,2,3,4,5五個(gè)數(shù)值的數(shù)組
("zmd",1974,173.5)#具有"zmd",1974,173.5三個(gè)數(shù)值的數(shù)組
()#空數(shù)組
($a,5)#兩個(gè)數(shù)值:$a的值和5
($a+$b,6)#兩個(gè)數(shù)值
數(shù)組Perl變量具有單獨(dú)的數(shù)組值,要以@打頭而不是$。如:@zmd
注意@zmd與$zmd沒任何聯(lián)系。Perl為對(duì)象的不同類型保留獨(dú)立的命名空間。
數(shù)組的賦值和標(biāo)量賦值一樣,也用等號(hào)表示。Perl根據(jù)賦值對(duì)象是標(biāo)量還是數(shù)組Perl變量來確定賦值操作是標(biāo)量賦值還是數(shù)組賦值。
若數(shù)組實(shí)量中只含有Perl變量引用(不是表達(dá)式),則此數(shù)組實(shí)量也可作為Perl變量使用。它可以用在賦值運(yùn)算符的左邊。例如:
($a,$b,$c)=(1,2,3)#將1賦給$a,2賦給$2,3賦給$3
如果把數(shù)值Perl變量賦給標(biāo)量Perl變量,則賦給標(biāo)量Perl變量的就是數(shù)組長度,如:
@zmd=(1,2,3)#將(1,2,3)賦給@zmd
$a=@zmd#$a為3,即@zmd的數(shù)組個(gè)數(shù)
數(shù)組元素的訪問和C語言中類似,下標(biāo)是按順序整數(shù)排列的,編號(hào)從0開始。
($a,$b,$c)=(1,2,3)#將1賦給$a,2賦給$2,3賦給$3
如果把數(shù)值Perl變量賦給標(biāo)量Perl變量,則賦給標(biāo)量Perl變量的就是數(shù)組長度,如:
@zmd=(1,2,3)#將(1,2,3)賦給@zmd
$a=@zmd#$a為3,即@zmd的數(shù)組個(gè)數(shù)
綜合舉例
三、關(guān)聯(lián)數(shù)組
Perl變量的關(guān)聯(lián)數(shù)組和前面說的數(shù)組類似,它包含標(biāo)量數(shù)據(jù),可用索引值來單獨(dú)選擇這些數(shù)據(jù),和數(shù)組不同的是,關(guān)聯(lián)數(shù)組的索引值不是非負(fù)的整數(shù)而是任意的標(biāo)量。這些標(biāo)量稱為Keys,可以在以后用于檢索數(shù)組中的數(shù)值。
關(guān)聯(lián)數(shù)組的元素沒有特定的順序,你可以把它們想象為一組卡片。每張卡片上半部分是索引而下半部分是數(shù)值。
關(guān)聯(lián)數(shù)組是Perl語言中特有的,關(guān)聯(lián)數(shù)組是一個(gè)功能強(qiáng)大的數(shù)組。使用關(guān)聯(lián)數(shù)組時(shí)要在前面加上%號(hào),關(guān)聯(lián)數(shù)組的格式如:
%ARRAY=(key1,value1,key2,value2,key3,value3);
每一個(gè)key都有一個(gè)相對(duì)應(yīng)的值(value)。
和數(shù)組類似,$zmd,@zmd,%zmd之間沒有任何聯(lián)系。Perl為對(duì)象的不同類型保留獨(dú)立的命名空間。
Perl變量中關(guān)聯(lián)數(shù)組的操作:
在關(guān)聯(lián)數(shù)組中增加、更改一對(duì)數(shù)據(jù):ARRAY={key}=value;在關(guān)聯(lián)數(shù)組ARRAY中加上一對(duì)key-value,要在關(guān)聯(lián)數(shù)組名稱前加上$號(hào),而且key的名稱要在{}符號(hào)之間,最后再指定key所對(duì)應(yīng)的value值。如果在這個(gè)關(guān)聯(lián)數(shù)組中已經(jīng)有這個(gè)key了.就會(huì)更改這個(gè)key所對(duì)應(yīng)的value。
keys(%array)操作符可生成由關(guān)聯(lián)數(shù)組%array中的所有當(dāng)前關(guān)鍵字組成的列表。即返回奇數(shù)個(gè)元素(第1,3,5,7...個(gè))的列表。
values(%array)操作符返回由關(guān)聯(lián)數(shù)組%array中所有當(dāng)前值組成的列表,即返回偶數(shù)個(gè)列表。
echo(%array)操作符返回由一個(gè)關(guān)鍵字和一個(gè)值對(duì)構(gòu)成的兩個(gè)元素的表。對(duì)同一數(shù)組再操作時(shí)返回下一對(duì)值直至結(jié)束。若沒有更多的對(duì)時(shí),echo()返回空表。(這在打印全部列表中很有用)
刪除一對(duì)在關(guān)聯(lián)數(shù)組中的數(shù)據(jù):delete$ARRAY{key};delete是Perl所提供的函數(shù),作用是刪除關(guān)聯(lián)數(shù)組中的一個(gè)key以及這個(gè)key所對(duì)應(yīng)的value。使用方法是在delete函數(shù)之后,指定關(guān)聯(lián)數(shù)組中要?jiǎng)h除的key名稱。
關(guān)聯(lián)數(shù)組的綜合舉例:
【編輯推薦】
- 使用Perl常規(guī)表達(dá)式進(jìn)行匹配
- 淺談配置Eclipse支持Perl腳本開發(fā)
- 用Perl和Google Earth創(chuàng)建可用性地圖
- 在 Perl/Tk 中使用高級(jí)窗口小部件
- 讓Perl成為你的嵌入式開發(fā)工具