Perl 語法簡介.doc_第1頁
Perl 語法簡介.doc_第2頁
Perl 語法簡介.doc_第3頁
Perl 語法簡介.doc_第4頁
Perl 語法簡介.doc_第5頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Perl 語法簡介2010-03-06 00:011.PERL變量1.1.Perl變量分類Perl變量分為標量變量,數(shù)組變量,關聯(lián)數(shù)組變量3類.PERL的變量對大小寫敏感,比如:An,AN,an是3個不同的變量,但是不同類型的變量可以使用同一個名字,比如:VAR可以是一個標量變量,同時也可以有一個數(shù)組變量也是VAR.這是因為PERL對每種類型的變量采用獨立的名字空間,另外PERL的變量,可以存儲任何類型的數(shù)據(jù),無須像C那樣聲明變量,數(shù)據(jù)類型之間會自動轉換,同時PERL變量也有全局與過程變量之分,默認是全局變量.1.2.Perl變量1.2.1 Scalar變量(標量變量)標量變量只能存放一個值.PERL中的標量變量名總以字符$開頭.下面的PERL語句把9這個值賦給標量變量$nine.把BATI賦給標量變量$name.然后用PRINT語句打印出來.$nine=9;$name=BATI;print($name,is,$nine);把上述語句存為TEST01.PL文件,然后再在DOS環(huán)境下(WIN9X的MS-DOS方式也可以)運行:C:PERL5PERL TEST01.PL(回車)BATI is 9(什么?很眼熟?是阿,PERL和我們常用C就是這么相似)1.2.2 數(shù)組變量數(shù)組是一次能夠存儲多個變量的表.它的賦值方法如下:weekdays=(Sun,Mon,Tue,Wed,Thu,Fri,Sat);print (weekdays); #輸出為: SunMonTueWedThrFriSatprint ($weekdays1); #輸出為: Sunwork=weekdays1.5; #此時,數(shù)組work的值為(Mon,Tue,.,Fri);none=(); #表示空數(shù)組數(shù)組變量名以開頭,內是數(shù)組的下標值,下標值從0開始.這與C依然很相似.同樣的在PERL中,如果只有數(shù)組名,而忽略下標的話,也會像C那樣輸出整個輸出,比如:第一個輸出語句.但請注意在輸出Sun那一句時,當我們引用數(shù)組中某一個值的時候,我們不再使用,而是使用$作為變量的開頭,因為就單個值而言,它是一個標量變量,所以如此(這和C可不一樣哦)當然你還得給出下標值.在給數(shù)組work賦值的語句中,我們用到了SLICE初始化數(shù)組,你不必關心什么是SLICE,你只要記住這種形式就可以了,其實SLICE是表格的一部分,是官方的表示.對數(shù)組的賦值是多種多樣的.前面我們看到的都是用值對數(shù)組賦值,同樣你也可以用變量或者另一個數(shù)組的值給數(shù)組賦值,比如:name=($firstname,lastname);say=(He said,saysomething);以下是SLICE的例子:weekend=weekdays0,6; #數(shù)組weekend的值為(Sun,Sat)print(weekdays1.5,0,6); #輸出結果為MonTueWedThuFriSunSatPERL還支持一種特殊構造符$#var,它是用來返回數(shù)組最后一個索引值.比如下面的語句利用$構造符確定數(shù)組的第一個索引值,用$#var確定數(shù)組最后的索引值,然后顯示整個數(shù)組:for ($i=$;$i=$#buffer;$i+) print $buffer$i; 上面語句與print buffer;的輸出結果是一樣的.1.2.3 標量與數(shù)組變量表構造符(,)與順序計值運算符(,)非常相似.因此,PERL調用哪一個運算符取決于命令文件運行時的具體情況,即文件正在使用數(shù)組還是標量值.PERL在數(shù)組表達式中調用表結構符, 在順序計值中調用計值運算符.請考慮以下兩個表達式:an_array=(1,2,3,4,5);$a_scalar=(1,2,3,4,5);第一個語句初始化一個數(shù)組,第二句把$a_scalar變量的值設為5,而且取消了前4個元素的賦值作用.再來看一個例子:print $assoc1,2;print $assoc1,2;第一句打印二維關聯(lián)數(shù)組的一個元素值,而第二句打印一維數(shù)組的兩個元素值.1.2.4 關聯(lián)數(shù)組變量關聯(lián)數(shù)組變量與數(shù)組變量很相似,都可以存儲標量變量的表.它們的區(qū)別在于數(shù)組變量必須通過整數(shù)下標來引用數(shù)組元素, 而關聯(lián)數(shù)組變量可以通過任何值作為下標而達到訪問數(shù)組元素的目的.關聯(lián)數(shù)組的下標我們稱之為鍵值(Key),是一種索引值.下面我們通過一個例子來理解:$agesBob=35;$agesMary=25;$,=;print agesBob,Mary;print keys(%ages );for $name(keys(%ages)print $name is $ages$keysn;程序把一個值賦給$,變量,這樣以后的print語句的輸出會受到影響,關于特殊變量$,我們將在以后介紹.PERL調用關聯(lián)數(shù)組變量時,使用花括號括起鍵值.agesBob,Mary在花括號內給出了鍵值,表示引用一個元素,此語句中有兩個鍵值,表示引用數(shù)組的一部分,其結果應為(35,25)與($agesBob,$agesMary)語句的結果相同.print keys(%ages)使用了keys運算符.其結果將返回關聯(lián)數(shù)組的所有鍵值,組成一個表.%ages表示引用整個關聯(lián)數(shù)組.請注意循環(huán)語句中的print語句,在這里我們看到了在(雙引號)中插入變量的用法,這是非常有用的.在輸出結果的時候,變量將被替換成變量的值作為輸出的最終結果,這就是所謂的內插法.但是PERL不允許在(單引號)中插入變量!2.PERL運算符2.1算數(shù)運算符Perl雖然在變量與數(shù)據(jù)類型都和大不相同,然而它的運算符和幾乎相同,除了的類型轉換運算符,指針引用運算符*和結構成員選擇符,其他的運算符幾乎完全出現(xiàn)在Perl里,Perl新增了幾個新運算符,比如在字符處理方面Perl到目前支持的算數(shù)運算符有一些幾種:+ 加法運算符- 減法運算符* 乘運算符/ 除運算符(只對浮點數(shù)運算)% 取模運算符(只對整數(shù)運算)下面給出Perl算數(shù)運算的一些實例:$x=2.5;$y=3;print ($x+2*$y);print (7/$y);print int(7/$y);print (7%$y);print (7.5%$y);Perl還支持遞增和遞減運算符:+ 遞加- 遞減Perl新增了乘方運算符:*,請看下面的例子:$x=2*3; #2的3次方$y=2*0.5; #2的平方根$z=-2*-3; #結果是:-0.1252.2位運算符位運算符對二進制表達式的整數(shù)形式進行處理,運算結果為整數(shù)如果位運算符的操作數(shù)是字符串或分數(shù),Perl首先把它們轉換成整數(shù),并用32位長整數(shù)形式表示它們Perl支持所有的語言運算符:| 位或運算符& 位與運算符. 位非運算符 位右移運算符有關位運算符的詳細內容,請參看語言有關的內容,這里我們就不多講了,只舉幾個例子:$x=5;$y=3;print $x | $y; #結果是(二進制表示:111)print $x & $y; #結果是1(二進制表示:001)print $x 1; #結果是2(二進制表示:10)2.3比較運算符比較運算符的功能是比較兩個操作數(shù)的值Perl在進行比較運算前,會先將字符操作數(shù)轉換為數(shù)字Perl用專門的字符串比較運算符對純字符進行表運算運算符 等價字符串 含義=!=eqnegtltgelecmp等于不等于大于小于大于等于小于等于不等于(結果帶符號)2.4 邏輯運算符 邏輯運算符測試布爾表達式的值,其結果為真或假Perl認為邏輯運算符的每個操作數(shù)都為布爾值(即真或假)Perl的邏輯運算符包括:| 邏輯或運算符;& 邏輯與運算符.Perl按從左到右的順序計算邏輯表達式當邏輯或運算符的一個操作數(shù)為真,或者當邏輯與運算符的一個操作數(shù)為假時,Perl將終止邏輯表達式的計算Perl利用這種短回路計值快速計算表達式的值因此,這兩個運算符也叫短回路和短回路除了以上兩個運算符,還有以下三種邏輯運算符:! 負運算符?: 條件運算符, 順序計值符運算符!否定操作數(shù)的布爾值,相當于邏輯非?:條件運算符,有3個操作數(shù),表達形式為:condition?true-result:false-result下面的語句通過?:運算符,實現(xiàn)訪問權限的區(qū)分:$access=($user eq 流云?root:guest);順序運算符(,)從嚴格意義上講并不是邏輯運算符,因為它并不檢查操作數(shù)的真假Perl從左到右的計算逗號運算符,并返回最右邊的操作數(shù),都好運算符是從延續(xù)出來的,具體使用可以參考里的用法,這里我就不累述了2.5 字符運算符由于Perl本身是為文本處理開發(fā)的因此,它增加許多新的字符串運算符Perl的字符串運算符包括:. 字符連接運算符x 字符串復制運算符= 將一個變量綁定到模式匹配! 將一個變量綁定到模式匹配,取非前兩個運算符比較簡單.現(xiàn)在看看例子:print C.a.lx2; #輸出結果將是: Call;后兩個運算符主要用于模式匹配,以后將會有關于模式匹配的具體講解,這里就不多說了,我們來看看它們的例子,以了解它們的作用:$text=今天下雨了;print ($text=/下雨/)?今天下雨了:今天沒下雨;我們看到的例子可以發(fā)現(xiàn)是否變量中是否包含我們所需要的字符串.2.6 賦值運算符賦值運算符和C語言的賦值運算符差不多,以下是各種賦值運算符:= += -= *= /= %= |= &= = = *= .= x=2.7 Lvalue在Perl和語言中,lvalue表示賦值運算符左邊的實體也就是說,lvalue與變量一樣,可以給它分配值例如在Perl命令文件中不能向字符串賦值,如Bob=32這個語句就是錯誤的!因為Bob不是一個lvalue,但是如果對$Bob賦值,如$Bob=32,這個語句就是正確的!因為變量$Bob是一個lvalue在Perl中,任何有意義的lvalue只能表示一個實體例如下面的第一個語句列出了表的值(就是數(shù)組的值,只不過說法不一樣罷了),color就是一個lvalue,第二個語句中,將表的值賦值給3個標量變量,3個變量就是lvalue:color=($r,$g,$b);($r,$g,$b)=color;Perl的賦值運算符對表進行處理時,可以不對整個表進行處理,而只針對表的某一個或者幾個元素進行賦值:times2,5,9=(20,40,10);下面的語句把表的前2個值賦給兩個標量,其余部分賦給另一個表:($arg1,$arg2,reset)=ARGV;2.8 表運算符Perl包括以下一些表運算符,而沒有:, 表構造符. 范圍運算符x 表復制運算符前面我們在介紹標量與數(shù)組變量時,已經(jīng)設計到了構造符(我認為叫分隔符,更容易理解些)范圍運算符我們在用來創(chuàng)建數(shù)組下標范圍時,也用到過!不過,請注意它的功能還遠不止這個,它還可以用來作為返回從左邊操作數(shù)到右邊操作數(shù)之間順序整數(shù)的范圍(包括左右兩邊的操作數(shù))命令文件通常同時利用范圍運算符創(chuàng)造一個連續(xù)整數(shù)表:digits=0.9;這樣我們就創(chuàng)造了一個表,其值為(0,1,2,3,4,5,6,7,8,9)表復制運算符是一個非常有趣的東東,我們來看一個例子:copy_3=(1,2,3)x3;這個表有9元素,其值為(1,2,3,1,2,3,1,2,3)怎么樣?很方便吧!2.9 文件運算符Perl大大擴展了文件處理運算符Perl至少有27個運算符在不打開文件的情況下,能夠測試文件的信息,但是很不幸,由于Perl在最初是UNIX的工具,所以絕大多數(shù)的運算符在我們流行的平臺上:WIN9X/NT系統(tǒng)無法使用但萬幸的是不是全部還有4個運算符絕對可用,而且功能不錯哦!一下就是那4個運算符:-d 測試文件是不是一個目錄;-e 測試文件是否存在;-s 測試文件的大小;-w 測試文件是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論