中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用Perl操作符

發布時間:2021-12-07 09:11:37 來源:億速云 閱讀:185 作者:小新 欄目:開發技術

小編給大家分享一下如何使用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操作符”獲取詳細信息。不要把這個性質和字串里的反斜杠的作用混淆了,雖然兩者都有防止下一個東西被轉換的模糊的含義。當然這個相似也并不是完全偶然的。

以上是“如何使用Perl操作符”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

北票市| 泽普县| 枣庄市| 康保县| 黑山县| 尼玛县| 乐业县| 长汀县| 双江| 钟祥市| 菏泽市| 平山县| 和静县| 平和县| 洛川县| 安龙县| 乐都县| 松江区| 高陵县| 赣榆县| 阿拉善盟| 淮北市| 成安县| 沁水县| 桦南县| 赣榆县| 兰西县| 肇东市| 敦化市| 康马县| 金坛市| 溆浦县| 开封县| 酉阳| 贵阳市| 和平县| 延吉市| 体育| 辰溪县| 招远市| 资源县|