- Perl 基礎
- Perl - 首頁
- Perl - 簡介
- Perl - 環境
- Perl - 語法概述
- Perl - 資料型別
- Perl - 變數
- Perl - 標量
- Perl - 陣列
- Perl - 雜湊
- Perl - IF...ELSE
- Perl - 迴圈
- Perl - 運算子
- Perl - 日期和時間
- Perl - 子程式
- Perl - 引用
- Perl - 格式
- Perl - 檔案 I/O
- Perl - 目錄
- Perl - 錯誤處理
- Perl - 特殊變數
- Perl - 編碼規範
- Perl - 正則表示式
- Perl - 傳送郵件
- Perl 高階
- Perl - 套接字程式設計
- Perl - 面向物件
- Perl - 資料庫訪問
- Perl - CGI 程式設計
- Perl - 包和模組
- Perl - 程序管理
- Perl - 嵌入式文件
- Perl - 函式引用
- Perl 有用資源
- Perl - 問答
- Perl - 快速指南
- Perl - 有用資源
- Perl - 討論
Perl - 運算子
什麼是運算子?
可以使用表示式4 + 5 等於 9給出簡單的答案。這裡 4 和 5 稱為運算元,+ 稱為運算子。Perl 語言支援許多運算子型別,但以下是重要且最常用的運算子列表:
- 算術運算子
- 相等運算子
- 邏輯運算子
- 賦值運算子
- 按位運算子
- 邏輯運算子
- 類引號運算子
- 雜項運算子
讓我們逐一看看所有運算子。
Perl 算術運算子
假設變數 $a 包含 10,變數 $b 包含 20,則以下是 Perl 算術運算子:
| 序號 | 運算子 & 描述 |
|---|---|
| 1 | + (加法) 將運算子兩側的值相加 示例 - $a + $b 將得到 30 |
| 2 | - (減法) 從左運算元中減去右運算元 示例 - $a - $b 將得到 -10 |
| 3 | * (乘法) 將運算子兩側的值相乘 示例 - $a * $b 將得到 200 |
| 4 | / (除法) 將左運算元除以右運算元 示例 - $b / $a 將得到 2 |
| 5 | % (模) 將左運算元除以右運算元並返回餘數 示例 - $b % $a 將得到 0 |
| 6 | ** (指數) 對運算子執行指數(冪)計算 示例 - $a**$b 將得到 10 的 20 次冪 |
Perl 相等運算子
這些也稱為關係運算符。假設變數 $a 包含 10,變數 $b 包含 20,那麼讓我們檢查以下數值相等運算子:
| 序號 | 運算子 & 描述 |
|---|---|
| 1 | == (等於) 檢查兩個運算元的值是否相等,如果相等則條件為真。 示例 - ($a == $b) 為假。 |
| 2 | != (不等於) 檢查兩個運算元的值是否相等,如果值不相等則條件為真。 示例 - ($a != $b) 為真。 |
| 3 | <=> 檢查兩個運算元的值是否相等,並根據左引數在數值上是否小於、等於或大於右引數返回 -1、0 或 1。 示例 - ($a <=> $b) 返回 -1。 |
| 4 | > (大於) 檢查左運算元的值是否大於右運算元的值,如果大於則條件為真。 示例 - ($a > $b) 為假。 |
| 5 | < (小於) 檢查左運算元的值是否小於右運算元的值,如果小於則條件為真。 示例 - ($a < $b) 為真。 |
| 6 | >= (大於或等於) 檢查左運算元的值是否大於或等於右運算元的值,如果大於或等於則條件為真。 示例 - ($a >= $b) 為假。 |
| 7 | <= (小於或等於) 檢查左運算元的值是否小於或等於右運算元的值,如果小於或等於則條件為真。 示例 - ($a <= $b) 為真。 |
以下是字串相等運算子的列表。假設變數 $a 包含 "abc",變數 $b 包含 "xyz",那麼讓我們檢查以下字串相等運算子:
| 序號 | 運算子 & 描述 |
|---|---|
| 1 | lt 如果左引數在字串上小於右引數,則返回真。 示例 - ($a lt $b) 為真。 |
| 2 | gt 如果左引數在字串上大於右引數,則返回真。 示例 - ($a gt $b) 為假。 |
| 3 | le 如果左引數在字串上小於或等於右引數,則返回真。 示例 - ($a le $b) 為真。 |
| 4 | ge 如果左引數在字串上大於或等於右引數,則返回真。 示例 - ($a ge $b) 為假。 |
| 5 | eq 如果左引數在字串上等於右引數,則返回真。 示例 - ($a eq $b) 為假。 |
| 6 | ne 如果左引數在字串上不等於右引數,則返回真。 示例 - ($a ne $b) 為真。 |
| 7 | cmp 根據左引數在字串上是否小於、等於或大於右引數返回 -1、0 或 1。 示例 - ($a cmp $b) 為 -1。 |
Perl 賦值運算子
假設變數 $a 包含 10,變數 $b 包含 20,則以下是 Perl 中可用的賦值運算子及其用法:
| 序號 | 運算子 & 描述 |
|---|---|
| 1 | = 簡單賦值運算子,將右側運算元的值賦給左側運算元 示例 - $c = $a + $b 將 $a + $b 的值賦給 $c |
| 2 | += 加並賦值運算子,將右運算元加到左運算元上並將結果賦給左運算元 示例 - $c += $a 等價於 $c = $c + $a |
| 3 | -= 減並賦值運算子,從左運算元中減去右運算元並將結果賦給左運算元 示例 - $c -= $a 等價於 $c = $c - $a |
| 4 | *= 乘並賦值運算子,將右運算元乘以左運算元並將結果賦給左運算元 示例 - $c *= $a 等價於 $c = $c * $a |
| 5 | /= 除並賦值運算子,將左運算元除以右運算元並將結果賦給左運算元 示例 - $c /= $a 等價於 $c = $c / $a |
| 6 | %= 模並賦值運算子,使用兩個運算元取模並將結果賦給左運算元 示例 - $c %= $a 等價於 $c = $c % a |
| 7 | **= 指數並賦值運算子,對運算子執行指數(冪)計算並將值賦給左運算元 示例 - $c **= $a 等價於 $c = $c ** $a |
Perl 按位運算子
按位運算子作用於位並執行逐位運算。假設 $a = 60;和 $b = 13;現在以二進位制格式它們將如下所示:
$a = 0011 1100
$b = 0000 1101
-----------------
$a&$b = 0000 1100
$a|$b = 0011 1101
$a^$b = 0011 0001
~$a = 1100 0011
Perl 語言支援以下按位運算子,假設 $a = 60;和 $b = 13
| 序號 | 運算子 & 描述 |
|---|---|
| 1 | & 二進位制 AND 運算子如果位存在於兩個運算元中,則將其複製到結果中。 示例 - ($a & $b) 將得到 12,即 0000 1100 |
| 2 | | 二進位制 OR 運算子如果位存在於任一運算元中,則將其複製。 示例 - ($a | $b) 將得到 61,即 0011 1101 |
| 3 | ^ 二進位制 XOR 運算子如果位在一個運算元中設定但在另一個運算元中未設定,則將其複製。 示例 - ($a ^ $b) 將得到 49,即 0011 0001 |
| 4 | ~ 二進位制一補碼運算子是一元的,其作用是“翻轉”位。 示例 - (~$a ) 將得到 -61,由於是有符號二進位制數,因此在 2 的補碼形式中為 1100 0011。 |
| 5 | << 二進位制左移運算子。左運算元的值向左移動由右運算元指定的位數。 示例 - $a << 2 將得到 240,即 1111 0000 |
| 6 | >> 二進位制右移運算子。左運算元的值向右移動由右運算元指定的位數。 示例 - $a >> 2 將得到 15,即 0000 1111 |
Perl 邏輯運算子
Perl 語言支援以下邏輯運算子。假設變數 $a 包含 true,變數 $b 包含 false,則:
| 序號 | 運算子 & 描述 |
|---|---|
| 1 | and 稱為邏輯 AND 運算子。如果兩個運算元都為真,則條件為真。 示例 - ($a and $b) 為假。 |
| 2 | && C 風格的邏輯 AND 運算子如果位存在於兩個運算元中,則將其複製到結果中。 示例 - ($a && $b) 為假。 |
| 3 | or 稱為邏輯 OR 運算子。如果兩個運算元中的任何一個非零,則條件為真。 示例 - ($a or $b) 為真。 |
| 4 | || C 風格的邏輯 OR 運算子如果位存在於任一運算元中,則將其複製。 示例 - ($a || $b) 為真。 |
| 5 | not 稱為邏輯 NOT 運算子。用於反轉其運算元的邏輯狀態。如果條件為真,則邏輯 NOT 運算子將使其為假。 示例 - not($a and $b) 為真。 |
類引號運算子
Perl 語言支援以下類引號運算子。在下表中,{} 代表您選擇的任何分隔符對。
| 序號 | 運算子 & 描述 |
|---|---|
| 1 | q{ } 用單引號括起來一個字串 示例 - q{abcd} 得到 'abcd' |
| 2 | qq{ } 用雙引號括起來一個字串 示例 - qq{abcd} 得到 "abcd" |
| 3 | qx{ } 用反引號括起來一個字串 示例 - qx{abcd} 得到 `abcd` |
雜項運算子
Perl 語言支援以下雜項運算子。假設變數 a 包含 10,變數 b 包含 20,則:
| 序號 | 運算子 & 描述 |
|---|---|
| 1 | . 二元運算子點 (.) 連線兩個字串。 示例 - 如果 $a = "abc",$b = "def",則 $a.$b 將得到 "abcdef" |
| 2 | x 重複運算子 x 返回一個字串,該字串由左運算元重複由右運算元指定的次數。 示例 − ('-' x 3) 將得到 ---。 |
| 3 | .. 範圍運算子 .. 返回一個從左側值到右側值(遞增1)的數值列表。 示例 − (2..5) 將得到 (2, 3, 4, 5) |
| 4 | ++ 自動遞增運算子將整數值增加1。 示例 − $a++ 將得到 11 |
| 5 | -- 自動遞減運算子將整數值減少1。 示例 − $a-- 將得到 9 |
| 6 | -> 箭頭運算子主要用於從物件或類名中取消引用方法或變數。 示例 − $obj->$a 是從物件 $obj 中訪問變數 $a 的示例。 |
Perl 運算子優先順序
下表列出了所有運算子,從最高優先順序到最低優先順序。
left terms and list operators (leftward) left -> nonassoc ++ -- right ** right ! ~ \ and unary + and - left =~ !~ left * / % x left + - . left << >> nonassoc named unary operators nonassoc < > <= >= lt gt le ge nonassoc == != <=> eq ne cmp ~~ left & left | ^ left && left || // nonassoc .. ... right ?: right = += -= *= etc. left , => nonassoc list operators (rightward) right not left and left or xor