- 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 | 其 如果左侧参数按字符串方式小于右侧参数,则返回 true。 示例- ($a lt $b) 为真。 |
2 | GT 如果左侧参数按字符串方式大于右侧参数,则返回 true。 示例- ($a gt $b) 为假。 |
3 | 乐 如果左侧参数按字符串方式小于或等于右侧参数,则返回 true。 示例- ($a le $b) 为真。 |
4 | 葛 如果左侧参数按字符串方式大于或等于右侧参数,则返回 true。 示例- ($a ge $b) 为假。 |
5 | 情商 如果左侧参数按字符串方式等于右侧参数,则返回 true。 示例- ($a eq $b) 为假。 |
6 | 讷 如果左侧参数按字符串方式不等于右侧参数,则返回 true。 示例- ($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 | += 添加AND赋值运算符,它将右操作数添加到左操作数并将结果分配给左操作数 示例- $c += $a 相当于 $c = $c + $a |
3 | -= 减法AND赋值运算符,它从左操作数中减去右操作数,并将结果赋给左操作数 示例- $c -= $a 相当于 $c = $c - $a |
4 | *= 乘法与赋值运算符,将右操作数与左操作数相乘,并将结果赋给左操作数 示例- $c *= $a 相当于 $c = $c * $a |
5 | /= 除法与赋值运算符,它将左操作数与右操作数相除,并将结果赋给左操作数 示例- $c /= $a 相当于 $c = $c / $a |
6 | %= 模数与赋值运算符,它使用两个操作数取模并将结果分配给左操作数 示例- $c %= $a 相当于 $c = $c % a |
7 | **= 指数AND赋值运算符,对运算符执行指数(幂)计算并将值赋给左操作数 示例- $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 | | 如果某个操作数中存在某个位,则二元“或”运算符会复制该位。 示例- ($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 | 和 称为逻辑与运算符。如果两个操作数都为 true,则条件为 true。 示例- ($a 和 $b) 为假。 |
2 | && 如果两个操作数中都存在的话,C 风格的逻辑 AND 运算符会将一位复制到结果中。 示例- ($a && $b) 为假。 |
3 | 或者 称为逻辑或运算符。如果两个操作数中的任何一个不为零,则条件变为真。 示例- ($a 或 $b) 为 true。 |
4 | || C 风格的逻辑 OR 运算符会复制一个位(如果该位存在于另一个操作数中)。 示例- ($a || $b) 为真。 |
5 | 不是 称为逻辑非运算符。用于反转其操作数的逻辑状态。如果条件为真,则逻辑 NOT 运算符将为假。 示例- not($a 和 $b) 为 true。 |
类似引号的运算符
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 | .. 范围运算符 .. 返回从左值到右值计数(递增)的值列表 示例- (2..5) 将给出 (2, 3, 4, 5) |
4 | ++ 自动递增运算符将整数值加一 示例- $a++ 将给出 11 |
5 | -- 自动递减运算符将整数值减一 示例- $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