成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

解析四大Perl操作符用法

開發 架構
本文向大家介紹一下Perl操作符的概念,Perl操作符中的箭頭操作符和C和C++類似,雙目Perl操作符->是一個中綴解引用Perl操作符。

本文和大家重點討論一下Perl操作符的相關內容,主要包括箭頭操作符,自增自減Perl操作符和指數運算等內容,希望通過本文的簡單介紹大家對Perl操作符的概念有一定的了解。

箭頭Perl操作符

和C和C++類似,雙目Perl操作符->是一個中綴解引用Perl操作符。如果右邊是一個[...]數組下標、一個{...}散列下標、或者一個(...)子過程參數列表,那么左邊必須是一個對應的數組、散列、或者子過程的應用(硬引用或符號引用都行)。在一個左值(可賦值)環境里,如果左邊不是一個引用,那它必須是一個能夠保存硬引用的位置,這種情況下這種引用會為你自動激活。有關這方面的更多的信息(以及關于故意自激活的一些警告信息),請參閱第八章,引用。

$aref->[42]#一個數組解引用
$href->{"cornedbeff"}#一個散列解引用
$sref->(1,2,3)#一個子過程解引用
要不然,它就是某種類型的方法調用。右邊必須是一個方法名(或者一個包含該方法名的簡單標量變量),而且左邊必須得出一個對象名(一個已賜福引用)或者一個類的名字(也就是說,一個包名字):

$yogi=Bear->new("Yogi");#一個類方法調用$yogi->swipe($picnic);#一個對象方法調用

方法名可以用一個包名修飾以標明在哪個包里開始搜索該方法,或者帶著特殊包名字,SUPER::,以表示搜索應該從父類開始。參閱第十二章,對象。

自增和自減Perl操作符

++和--Perl操作符的功能和C里面一樣。就是說,當把它們放在一個變量前面時,它們在返回變量值之前增加或者減少變量值,當放在變量后面時,它們在返回變量值后再對其加一或減一。比如,$a++把標量變量$a的值加一,在它執行增加之前返回它的值。類似地,--$b{(/(\w+)/)[0]}把散列%b里用缺省的搜索變量($_)里的***個“單詞”索引的元素先減一,然后返回。(注:哦,這兒可能有點不公平,因為好多東西你還不知道。我們只是想讓你專心。該表達式的工作過程是這樣的:首先,模式匹配用表達式\w+在$_里找***個單詞。它周圍的圓括弧確保此單詞作為單元素列表值返回,因為該模式匹配是在列表環境里進行的。這個列表環境是由列表片段Perl操作符,(...)[0]提供的,它返回列表的***個(也是***一個)元素。該值用做散列的鍵字,然后散列記錄(值)被判斷并返回。通常,如果碰到一個復雜的表達式,你可以從內向外地分析它并找出事情發生的順序。)

自增Perl操作符有一點額外的內建處理。如果你增加的變量是一個數字,或者該變量在一個數字環境里使用,你得到正常自增的功能。不過,如果該變量從來都是在字串環境里使用,而且值為非空,還匹配模式/^[a-zA-z]*[0-9]*$/,這時自增是以字串方式進行的,每個字符都保留在其范圍之內,同時還會進位:

print++($foo='99');#打印'100'
print++($foo='a0');#打印'a1'
print++($foo='Az');#打印'Ba'
print++($foo='zz');#打印'aaa'
在我們寫這些的時候,自增的額外處理還沒有擴展到Unicode字符和數字,不過將來也許會的。

不過自減Perl操作符沒有額外處理,我們也沒有準備給它增加這個處理。

指數運算

雙目**是指數Perl操作符。請注意它甚至比單目Perl操作符的綁定更嚴格,所以-2**4是-(2**4),不是(-2)**4。這個Perl操作符是用C的pow(3)函數實現的,該函數在內部以浮點數模式運轉。它用對數運算進行計算,這就意味著它可以處理小數指數,不過有時候你得到的結果不如直接用乘法得出的準確。

表意單目Perl操作符

大多數單目Perl操作符只有名字(參閱本章稍后的“命名的單目和文件測試Perl操作符”),不過,有些Perl操作符被認為比較重要,所以賦予它們自己的特殊符號。所有這類Perl操作符好象都和否定操作有關。罵數學家去。

單目!執行邏輯否,就是說,“not”。參閱not看看一個在優先級中級別較低的邏輯否。如果操作數為假(數字零,字串"0",空字串或未定義),則對操作數取否,值為真(1),若操作數為真,則值為假(“”)。

如果操作數是數字,單目-執行數學取負。如果操作數是一個標識,則返回一個由負號和標識符連接在一起的字串。否則,如果字串以正號或負號開頭,則返回以相反符號開頭的字串。這些規則的一個效果是-bareword等于"-bareword"。這個東西對Tk程序員很有用。

單目~Perl操作符進行按位求反,也就是1的補數。從定義上來看,這個是有點不可移植的東西,因為它受限于你的機器。比如,在一臺32位機器上,~123是4294967172,而在一臺64位的機器上,它是18446744073709551493。不過你早就知道這個了。

你可能還不知道的是,如果~的參數是字串而不是數字,則返回等長字串,但是字串的所有位都是互補的。這是同時翻轉所有位的最快的方法,而且它還是可移植的翻轉位的方法,因為它不依靠你的機器的字大小。稍后我們將談到按位邏輯Perl操作符,它也有一個面向字串的變體。

單目+沒有任何語義效果,即使對字串也一樣。它在語法上用于把函數名和一個圓括弧表達式分隔開,否則它們會被解釋成一個一體的函數參數。(參閱“項和列表Perl操作符”的例子。)如果你向它的一邊進行考慮,+取消了圓括弧把前綴Perl操作符變成函數的作用。

單目Perl操作符\給它后面的東西創建一個引用。在一個列表上使用時,它創建一列引用。參閱第八章中的“反斜杠Perl操作符”獲取詳細信息。不要把這個性質和字串里的反斜杠的作用混淆了,雖然兩者都有防止下一個東西被轉換的模糊的含義。當然這個相似也并不是完全偶然的。

【編輯推薦】

  1. 全面認識Perl操作符
  2. 暢談Perl操作符用法
  3. Perl二維數組用法全程剖析
  4. 深入學習Perl開發工具用法
  5. Perl多線程的兩種實現方式
責任編輯:佚名 來源: javaeye.com
相關推薦

2010-07-14 14:55:07

Perl操作符

2010-07-19 11:00:24

Perl操作符

2010-07-14 14:18:51

Perl操作符

2010-07-19 11:12:43

Perl 不等于

2010-07-15 09:49:23

Perl標量

2010-07-14 14:30:31

Perl操作符

2010-07-13 11:11:39

Perl標量

2010-07-15 13:50:16

Perl目錄操作函數

2010-07-05 11:12:43

常用UML圖

2010-08-17 09:20:28

DIV布局

2009-08-21 09:30:05

is和as操作符

2010-09-10 09:22:50

DIV布局

2010-07-13 09:23:00

Perl變量

2010-07-14 17:36:00

Perl運算符

2010-09-02 15:12:28

CSS屬性值選擇器

2010-09-10 10:10:36

CSS屬性

2010-07-20 15:54:40

Perl簡單變量

2010-07-20 12:44:20

Perl特殊變量

2010-07-13 13:49:43

Perl foreac

2010-08-05 10:22:46

Flex效果
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品国产一区二区三区日日嗨 | 玖玖玖av| 国产免费一区二区三区最新6 | 国产午夜在线观看 | 日本久久福利 | 精品一区二区三区91 | 亚洲精品在线看 | 久久综合国产精品 | 国产成人在线播放 | 毛片在线看看 | 国产成人精品av | 久久久网 | 日韩中文一区二区 | 日本精品久久 | 色资源站 | 日本又色又爽又黄的大片 | 国产精品美女久久久久久久久久久 | 一区精品在线观看 | 免费av直接看 | 欧美一区二区小视频 | 日本成人中文字幕在线观看 | 久久久久久亚洲精品 | 成人三级视频 | 欧美一级毛片久久99精品蜜桃 | 成人精品福利 | 亚洲成av人影片在线观看 | 亚洲成av | 日韩精品视频在线播放 | 日韩国产高清在线观看 | 高清国产午夜精品久久久久久 | 亚洲精品国产电影 | 四虎影视免费在线 | 午夜在线小视频 | 久久精品二区 | 天天综合天天 | 日韩av免费看 | 中文字幕视频在线观看免费 | 精品国产精品国产偷麻豆 | 男女在线网站 | 男人天堂网址 | 天天操夜夜操 |