1. 程式人生 > >Perl語言入門--2--perl的運算符

Perl語言入門--2--perl的運算符

enc sso pri 結合性 余數 兩種 截取 操作 語句

一、算數運算符

**:是冪 結果不能超過數的範圍 當指數為小數時 底數不能為負數

%:取余數 兩邊的操作數為整數,如果不是則要截取,把所有的小數部分去掉

註意:當一個字符串參加運算,需要轉化為整數時,如果不能轉化為整數則值為零, ‘2‘+1=3 ‘a‘+1=1

二、數字比較運算符

大於小於等於 :比較結果為真或非零 ,假或零

<=> : 比較運算 $a <=> $b

  當a大於b時:值為1

  當a小於b時:值為-1

  當a等於b時:值為0

用這個運算符的時候,自動把操作數轉化為整數,不能轉化為整數的則值為零

註意:因為浮點數不精確 不要把值相近的數拿來進行比較

三、字符串比較

四、字符串連接和重復

. :點是連接符 $a=‘a‘.‘b‘ -->變為 ‘ab‘

  在print是可以直接寫print $a$b - ->效果和這個一樣 print $a.$b

x : 重復 (x前後有空格,為了和變量名分開) ‘a‘ x 5 - -> ‘aaaaa‘

  如果重復次數小於1 則返回空串

四、邏輯運算符

&&(and) ||(or) !(not) xor

這個邏輯運算符左右跟的是布爾類型的值 先算左邊的 在算右邊的

五、賦值運算符

$a +=1 - ->等同於$a =$a +1

可以連等 :$a=$b=3 - ->$a =3 $b=3

六、自增 自減

++var-- $var2=$var1 +++$var1 #這兩種用法是不行的

1、可以用做字符串的自增:$a=‘az‘; $a++ 就變為 $a=‘ba‘

2、不可以用做字符串的自減:當$a--時 按數字運算,將字符串先轉化為0再自減

3、當字符串中有數字時,或非字母和數字的符號(比如#$@#$%^),自增也是先變為0再自增

  比如‘ab$c’ ‘we5a‘

4、預增: $b=++$a #$a先自增在賦值 # $a=1 $b =++$a; $a=2 $b=2

  後增:$b=$a++ #$a先賦值再自增 # $a=1 $b =$a++; $a=2 $b=1

七、逗號

  就是一個連接的作用: $a+=1 , $b=$a; ==> $a +=1 ; $b=$a;

  沒什麽卵用

八、條件運算符

三個操作數:先對條件表達式運算,為真時執行問號(?)後面的運算,為假時執行冒號(:) 後的運算。

$result = $var == 0 ? 14 : 7 #一般只用於簡單的條件 太復雜的就不如if語句看著直觀了

九、運算符的優先級(precedence)

自增自減最高,單操作數高於多操作數(就是取值、賦值之類的高於加減),數字運算  >  比較運算(大於小於等於什麽的,但大於小於(<>)高於等於(==)和不等於(!=))

  >  位運算  >  賦值運算(=)  >   邏輯運算

十、結合性(associativity)

結合性associativity:表達式中多個符號是同一優先級時,哪個先算,哪個後算?是先算左邊的(左結合性),還是先算右邊的(右結合性)

  一般都是左結合性:先算左 再算右

  右結合性:除了(**)以外 、一般根本見不到

      舉個栗子: $a =$b=1 #一起賦值

            $a=$b+=1 #先算b加一 再賦值給a

  當不知道優先順序時,加括號,解決所有問題

Perl語言入門--2--perl的運算符