三、Perl數(shù)據(jù)運(yùn)算
1、運(yùn)算符
- 算術(shù)運(yùn)算符
- 用來進(jìn)行常用的數(shù)據(jù)計(jì)算
- 四則運(yùn)算符
- 包括加、減、乘、除四種(+、-、*、/)
- 特殊的四則運(yùn)算:使用字符串進(jìn)行四則運(yùn)算(字符串和整數(shù)進(jìn)行相加)
- 乘冪運(yùn)算符
- 對(duì)數(shù)據(jù)做冪指數(shù)操作,操作符為**
- 使用方法:$data = 5; $data2 = 3; $data3 = $data1**$data2; $data4 = $data3**3.5;
- 涉及到開方運(yùn)算時(shí),基數(shù)不能為負(fù)
- 乘冪結(jié)果不能超過計(jì)算機(jī)的顯示范圍
- 取余運(yùn)算符
- 對(duì)數(shù)據(jù)進(jìn)行取余操作,用%表示
- 使用方法:($data1,$data2) = (18,4); $data3 = $data1 % $data2;
- 取余的操作數(shù)不是整數(shù)時(shí),對(duì)操作數(shù)進(jìn)行取整后運(yùn)算:$data = 18 % 2.6; ##相當(dāng)于$data = 18 % 2,返回值為0
- 運(yùn)算符的右側(cè)不能為0
- 單目負(fù)運(yùn)算符
- 屬于單目操作符,表示數(shù)字的正負(fù)屬性
- 使用方法:$data1 = -5; $data2 = -$data1;
- 自減操作符:兩個(gè)減號(hào)--
- 運(yùn)算符的省略形式
-
對(duì)變量自身進(jìn)行算術(shù)運(yùn)算時(shí),可使用省略形式
image.png
-
- 比較運(yùn)算符
- 用于數(shù)據(jù)之間的大小、相等性比較
- 數(shù)字比較運(yùn)算符
-
數(shù)據(jù)對(duì)象是數(shù)字值或者數(shù)字變量
image.png
-
- 字符串比較運(yùn)算符
-
數(shù)據(jù)對(duì)象是字符串或者字符串變量
image.png - 字符串的大小比較
-
在Perl中,基于字符串的ASCII碼對(duì)字符串進(jìn)行大小比較
image.png
-
-
- 邏輯運(yùn)算符
- 用于邏輯判斷,結(jié)果為"真"或"假",屬于布爾類型
- 邏輯或:$a || $b, 或者$a or $b
- 邏輯與:$a && $b, 或者$a and $b
- 邏輯非:!$a 或者 not $a
- 邏輯異或:$a xor $b
- 邏輯運(yùn)算符一般不單獨(dú)使用,會(huì)和if,while等控制結(jié)構(gòu)一起使用,返回值是0或1
- 位運(yùn)算符
- 以“位“為單位,對(duì)數(shù)據(jù)進(jìn)行修改等操作,多用于二進(jìn)制運(yùn)算
- 位與:&
- 位或:|
- 位非:~
- 位異或:^
- 左移:$x << 1
- 右移:$x >> 2
- 賦值運(yùn)算符
- 對(duì)數(shù)據(jù)進(jìn)行賦值操作
- 以等號(hào)“=”作為賦值標(biāo)識(shí),一般的賦值方式是數(shù)值拷貝
- 包括一些運(yùn)算和等號(hào)一起的省略寫法,如+=,-=,=,/=,%=,*=
- 另外還有.=, x=等字符串的賦值操作省略寫法
- 等號(hào)可以在一個(gè)賦值語句中多次出現(xiàn): $data1 = $data2 = $data3 = 5;
- 等號(hào)也可以作為子表達(dá)式:($a = $b) += 3;等價(jià)于$a = $b; $a = $a + 3;
- 其他運(yùn)算符
- 自增自減運(yùn)算符用于變量對(duì)自己本身的操作
- ++ 自增運(yùn)算符 值加1
- -- 自減運(yùn)算符 值減1
- 用法為:$data ++, ++ $data以及$data --, -- $data
- 運(yùn)算符放在左邊,變量本身及其返回值立馬發(fā)生變化
- 運(yùn)算符放在右邊,返回值為原值,但變量本身要下一次才能發(fā)生變化
- 不能在變量兩邊都使用自增自減運(yùn)算符
- 不能在變量自增或自減后在同一表達(dá)式中再次使用:$data2 = $data1 + ++$data1,這種表達(dá)式是錯(cuò)誤的
-
在Perl中,自增運(yùn)算符可以用于字符串,當(dāng)結(jié)尾字符為"z","Z","9"時(shí)會(huì)進(jìn)位
image.png - 字符串連接和重復(fù)運(yùn)算符
- 連接運(yùn)算符:.
- 重復(fù)運(yùn)算符:x
- $string1 = "begin";
- $string1 = $string." here" ##$string = "begin here"
- $string1 = $string1 x 2; ##$string = "begin here begin here"
- 逗號(hào)運(yùn)算符
- 可以用來提高程序的可讀性,其前面的表達(dá)式先行運(yùn)算
- $var1 += 1, $var2 = $var1;
- $result = (++$var, $var + 5);
- 條件運(yùn)算符
- 形式為:條件?值1:值2
- 當(dāng)條件為真是取值1,為假是取值2
- $result = $var == 0 ? 14 : 7;
- 在Perl5中,還可以在賦值式左邊使用條件操作符來選擇被賦值的變量
- $convar = 43 ? $var1 = 14 : $var2 = 14;
2、運(yùn)算符的優(yōu)先級(jí)和結(jié)合性
- 定義
- 運(yùn)算符的優(yōu)先級(jí)指的是不同運(yùn)算的先后順序
- 運(yùn)算符的結(jié)合性指的是運(yùn)算符的運(yùn)算方向
- 優(yōu)先級(jí)和結(jié)合性
- Perl中的所有運(yùn)算符都有自己的優(yōu)先級(jí)和固有結(jié)合性
- 優(yōu)先級(jí)的粗略規(guī)則是,單目操作符優(yōu)先級(jí)高于雙目操作符
-
同等情況下,位運(yùn)算高于邏輯運(yùn)算高于賦值運(yùn)算
image.png - 寫程序時(shí),應(yīng)多使用括號(hào)來進(jìn)行優(yōu)先級(jí)的自定義





