Perl 標量的操作符

2021-09-05 21:53:16 字數 2470 閱讀 1081

今天來看看標量的操作符,標量可以分為兩類:一類是數字,另一類是字串。在perl中這兩類資料可以相互轉化,但是操作還是有區別的。

下面先介紹數字型別的操作符:

數字型別的運算操作符有一下幾種:

+(加),-(減),*(乘),/(除),-(取反)。

不會的舉手,好沒有。

下面講一些難的。

第乙個是「%」(取餘)。嗯,會c語言的可以退場。這個操作符的使用方法和「/」差不多,但是結果是除之後的餘數。例如:

$a=6%5;這時$a的值為1;

$b=5%6; 這時$b的值為5。

如果在進行求餘運算時不是整數,那麼四捨五入後進行運算,不可以對0求餘噢!

第二個是冪運算(**)。

$c=2**3; 這時$c的值為8。相信我,我寫了乙個程式實驗過的,程式如下:

#!/user/bin/perl -w

use strict;

還有兩種我們應該知道的運算子是「++」和「--」。「++」在自身基礎上面加一,「--」在自身基礎上減一。這種運算在c裡面經常用的。

數字的比較運算子有下面幾個: 「<」,「>」,「<=」,「>=」我想這幾個我就不用解釋了。再有乙個就是「==」這個運算子用來對比兩個數字是否相等。然後就是「!=」表示兩個數字不等。

還有乙個好玩的比較運算子是「<=>」,這個運算子當左邊的數字小於右邊的時返回-1,相等時返回0,當左邊的大於右邊的時返回1。

另外就是位操作符了,和c一摸一樣。

位與:& 位或:| 位非:~ 位異或:^ 左移:$x << 1 右移:$x >> 2

注:不要將&用於負整數,因為perl將會把它們轉化為無符號數。

然後要講一講的是賦值操作符,最基本的賦值操作符是「=」,(廢話!)然後一種是「+=」表示在自身基礎上面增加。例如:

$d=3; $d+=3; 這時$d就等於6了。

相應的還有「-=」,「*=」,「/=」,「**=」,「^=」,「&=」,「|=」,「~=」。 數字的操作符大致就有這些了。

下面是關於字串的操作符的介紹。兩個字串相加(連線)用「.」進行。例如:

$e="hello "."all";

這時$e的值為「hello all」相應的也就有「.=」運算了。

另外還有乙個運算子是x,沒錯,就是它。用來表示……只可意會,不可言傳。

$f="f"x5;

此時$f的值為"fffff",明白了吧?

字串的比較用以下的操作符進行:

「lt」意為「小於,less than」;

「gt」意為「大於,greater than」;

「eq」意為「等於,equal」;

「le」意為「小於等於,less than or equal」;

「ge」意為「大於等於,greater or equal」;

「ne」意為「不等於, not equal」;

「cmp」意為「比較,返回 1, 0, or -1,compare」。

可以看出來字串的操作和數字的操作是相對的。

另外對字串可以進行「++」運算,這時將會把字串的ascii碼加一。但是"z"++卻是"a","z"++ 是"a","9"++是0,"ab99"++將會得到"ac00"。呵呵,很好玩吧?字串是沒有-,*,/等運算的。如果我們對字串進行這些運算則表示我們要把字串轉換成數字然後進行計算。如果這個字串是"111"還好說,如果我們強制perl把例如"aaaaa"一類的字串進行數字運算,perl會把這些字串轉換成0。因此"aaa"--將會得到-1。很好玩是不是?呵呵,perl還有很多好玩的東西。

對標量進行操作還可以使用下面的函式。

第乙個是length(),這個函式可以返回變數列印出來的長度。例如:

length(23),將會返回2;

length("hahaha"),將會返回6;

length(1)將返回1。

在perl5中length("你好"),將會返回4,聽說在perl5.6中將不會。我沒有實驗過,不好說什麼。

第二個函式是chop()。這個函式將會節掉字串中的最後乙個字元,例如:

$g="aaa";

chop($g);

這時$g中的值是"aa";同時chop會返回它所截下來的字元。試一試 $g="你好"; chop($g); 會發生什麼?

第三個函式是chomp(),這個函式僅僅將字串末尾的換行符裁掉。

第四個函式是substr()這個函式可以從乙個字串中擷取一段長度的字串並將其返回。例如:

$h="hello all";

$i=substr($h,3,5)

將會從「hello all」中擷取長度為5的字串,就是"lo al"。試一試這樣呢?

$h="你們好嗎?";

$i=substr($h,3,5);

第五個很有用的函式就是defined(),這個函式用來判斷乙個資料是否已經定義。在perl中,乙個資料如果沒有定義,那麼他將會是乙個叫做undef的特殊值。 defined()是乙個非常有用的函式。至少我經常用。有其是在判斷cgi輸入的時候。

perl高階排序, 操作符,飛船操作符

按照要求進行的排序 複製 如下 bin perl number qw 5 10 15 3 2 4 8 6 my descending s number 這裡 a 5,b 10,因為 a在前,perl得到的結果是小數在前,也就是公升序排列 print descending n 結果如下 f perl ...

perl檔案測試操作符

perl檔案測試操作符 操作符含義 r 檔案可以被有效的uid gid讀取。w 檔案可以被有效的uid gid寫入。x 檔案可以被有效的uid gid執行。o 檔案被有效uid所有 r 檔案可以被真實的uid gid讀取。w 檔案可以被真實的uid gid寫入。x 檔案可以被真實的uid gid執行...

Perl 中的鑽石操作符

經常會遇到需要讀取某些檔案的內容的時候,在 perl 中,可以用 開啟乙個輸入流,比如下面的 while 執行它,將會開啟乙個標準輸入流,按下回車後,就會列印輸入流中的資訊。while 的作用是不斷的讀取標準輸入流中的資料並列印。在沒有確認之前,標準輸入流始終是開啟的,在按下回車之後,才會執行下一次...