运算符
什么是运算符?
使用表达式4 + 5 is equal to 9可以给出简单的答案。 这里4和5被称为操作数,+被称为操作符。 Perl语言支持许多运算符类型,但以下是重要且最常用的运算符列表 -
- 算术运算符
- 平等运算符
- 逻辑运算符
- 分配运算符
- 按位运算符
- 逻辑运算符
- 报价运算符
- 其它运算符
让我们逐一了解所有运算符。
Perl算术运算符
假设变量$ a保持10,变量$ b保持20,然后是Perl算术运算符 -
Sr.No. | 操作符和说明 |
---|---|
1 | + ( Addition ) 在运算符的任一侧添加值 Example - $ a + $ b将给出30 |
2 | - (Subtraction) 从左手操作数中减去右手操作数 Example - $ a - $ b将给出-10 |
3 | * (Multiplication) 将运算符两侧的值相乘 Example - $ a * $ b将给出200 |
4 | / (Division) 用左手操作数除左手操作数 Example - $ b/$ a将给出2 |
5 | % (Modulus) 用左手操作数除左手操作数并返回余数 Example - $ b%$ a将给出0 |
6 | ** (Exponent) 对运算符执行指数(幂)计算 Example - $ a ** $ b将给出功率20的10 |
Perl Equality Operators
这些也称为关系运算符。 假设变量$ a保持10,变量$ b保持20,那么让我们检查以下数字相等运算符 -
Sr.No. | 操作符和说明 |
---|---|
1 | == (equal to) 检查两个操作数的值是否相等,如果是,则条件变为真。 Example - ($ a == $ b)不成立。 |
2 | != (not equal to) 检查两个操作数的值是否相等,如果值不相等则条件变为true。 Example - ($ a!= $ b)为真。 |
3 | 《=》 检查两个操作数的值是否相等,并返回-1,0或1,具体取决于左参数是否在数值上小于,等于或大于右参数。 Example - ($ a“=”$ b)返回-1。 |
4 | 》 (greater than) 检查左操作数的值是否大于右操作数的值,如果是,则条件变为真。 Example - ($ a“$ b)不成立。 |
5 | 《 (less than) 检查左操作数的值是否小于右操作数的值,如果是,则条件变为真。 Example - ($ a“$ b)为真。 |
6 | 》= (greater than or equal to) 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件变为真。 Example - ($ a“= $ b)不成立。 |
7 | 《= (less than or equal to) 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件变为真。 Example - ($ a“= $ b)为真。 |
以下是股权经营者名单。 假设变量$ a持有“abc”而变量$ b持有“xyz”然后,让我们检查以下字符串相等运算符 -
Sr.No. | 操作符和说明 |
---|---|
1 | lt 如果left参数的字符串小于右参数,则返回true。 Example - ($ a lt $ b)为true。 |
2 | gt 如果左参数的字符串大于右参数,则返回true。 Example - ($ a gt $ b)为false。 |
3 | le 如果左参数stringwise小于或等于right参数,则返回true。 Example - ($ a le $ b)为真。 |
4 | ge 如果左参数的字符串大于或等于右参数,则返回true。 Example - ($ a ge $ b)为false。 |
5 | eq 如果左参数的字符串等于右参数,则返回true。 Example - ($ a eq $ b)为false。 |
6 | ne 如果left参数stringwise不等于right参数,则返回true。 Example - ($ a ne $ b)为真。 |
7 | cmp 返回-1,0或1,具体取决于左参数是否是字符串小于,等于或大于右参数。 Example - ($ a cmp $ b)为-1。 |
Perl分配运算符
假设变量$ a保持10,变量$ b保持20,然后下面是Perl中可用的赋值运算符及其用法 -
Sr.No. | 操作符和说明 |
---|---|
1 | = 简单赋值运算符,将右侧操作数的值分配给左侧操作数 Example - $ c = $ a + $ b将$ a + $ b的值分配给$ c |
2 | += 添加AND赋值运算符,它将右操作数添加到左操作数并将结果赋给左操作数 Example - $ c + = $ a相当于$ c = $ c + $ a |
3 | -= 减去AND赋值运算符,它从左操作数中减去右操作数,并将结果赋给左操作数 Example - $ c - = $ a相当于$ c = $ c - $ a |
4 | *= 乘以AND赋值运算符,它将右操作数与左操作数相乘,并将结果赋值给左操作数 Example - $ c * = $ a相当于$ c = $ c * $ a |
5 | /= 除法AND赋值运算符,它将左操作数除以右操作数,并将结果赋值给左操作数 Example - $ c/= $ a相当于$ c = $ c/$ a |
6 | %= 模数AND赋值运算符,使用两个操作数获取模数,并将结果赋给左操作数 Example - $ c%= $ a相当于$ c = $ c%a |
7 | **= 指数AND赋值运算符,对运算符执行指数(幂)计算并将值赋给左操作数 Example - $ 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语言支持以下Bitwise运算符,假设$ a = 60; 而$ b = 13
Sr.No. | 操作符和说明 |
---|---|
1 | & 如果二进制AND运算符存在于两个操作数中,则它会将结果复制到结果中。 Example - ($ a和$ b)将给出12,即0000 1100 |
2 | | 如果二进制OR运算符存在于eather操作数中,则复制一位。 Example - ($ a | $ b)将给出61这是0011 1101 |
3 | ^ 二进制异或运算符如果在一个操作数中设置但不在两个操作数中设置,则复制该位。 Example - ($ a ^ $ b)将给出49,即0011 0001 |
4 | ~ 二元一元补语运算符是一元的,具有“翻转”位的效果。 Example - (〜$ a)将给出-61,由于带符号的二进制数,它是2的补码形式的1100 0011。 |
5 | 《《 二进制左移运算符。 左操作数值向左移动右操作数指定的位数。 Example - $ a“”2将给出240,即1111 0000 |
6 | 》》 二进制右移运算符。 左操作数值向右移动右操作数指定的位数。 Example - $ a“”2将给出15,即0000 1111 |
Perl逻辑运算符
Perl语言支持以下逻辑运算符。 假设变量$ a成立,变量$ b成立为假 -
Sr.No. | 操作符和说明 |
---|---|
1 | and 称为逻辑AND运算符。 如果两个操作数都为真,那么条件变为真。 Example - ($ a和$ b)为false。 |
2 | && 如果两个操作数中都存在C风格的逻辑AND运算符,则将其复制到结果中。 Example - ($ a && $ b)为false。 |
3 | or 称为逻辑OR运算符。 如果两个操作数中的任何一个非零,则条件变为真。 Example - ($ a或$ b)为true。 |
4 | || C样式的逻辑OR运算符如果在eather操作数中存在,则复制一点。 Example - ($ a || $ b)为真。 |
5 | not 称为逻辑非运算符。 用于反转其操作数的逻辑状态。 如果条件为真,则Logical NOT运算符将为false。 Example - not($ a和$ b)为真。 |
Quote-like Operators
Perl语言支持以下类似Quote的运算符。 在下表中,{}表示您选择的任何分隔符对。
Sr.No. | 操作符和说明 |
---|---|
1 | q{ } 用单引号括起一个字符串 Example - q {abcd}给出'abcd' |
2 | qq{ } 用双引号括起一个字符串 Example - qq {abcd}给出“abcd” |
3 | qx{ } 用in-in反向引号括起一个字符串 Example - qx {abcd}给出`abcd` |
混合操作符 (Miscellaneous Operators)
Perl语言支持以下其他运算符。 假设变量a保持10,变量b保持20然后 -
Sr.No. | 操作符和说明 |
---|---|
1 | . 二进制运算符点(。)连接两个字符串。 Example - 如果$ a =“abc”,$ b =“def”则$ a。$ b将给出“abcdef” |
2 | x 重复运算符x返回由左操作数组成的字符串,重复右操作数指定的次数。 Example - (' - 'x 3)将给出---。 |
3 | .. 范围运算符..返回从左值到右值计数(向上)的值列表 Example - (2..5)将给出(2,3,4,5) |
4 | ++ Auto Increment运算符将整数值增加1 Example - $ a ++将给出11 |
5 | -- Auto Decrement运算符将整数值减1 Example - $ a--将给出9 |
6 | -》 箭头运算符主要用于从对象或类名解除引用方法或变量 Example - $ 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