Perl 运算符
Perl 运算符
perl 运算符是一系列用作语法的符号。运算符是一种函数,其操作数是参数。
Perl 运算符优先级
Perl 优先级就像数学中的 BODMAS。加法和减法总是在乘法和除法之后。
例如,
这里,答案将是 2 与 BODMAS 规则。(6/3 = 2) 将首先计算,然后商 2 将乘以 5,然后进行减法和加法。
示例:
use 5.010;
use strict;
use warnings;
my $result1 = 8 + 4-5 * 6 / 3 ;
say $result1;
my $result2 = 12 * 3 + 2 ** 2 << 1;
say $result2;
输出:
Perl 运算符优先级表
| 操作符 |
说明 |
| ++,-- |
自增、自减 |
| -, ~, ! |
具有一个操作数的运算符 |
| ** |
求幂 |
| =~, !~ |
模式匹配运算符 |
| *,/, %, x |
乘法、除数、余数、重复 |
| +、-、. |
加法、减法、串联 |
| <<,>> |
移位运算符 |
| -e,-r |
文件状态运算符 |
| <, <=,>, >=, lt, le, gt, ge |
不等式比较运算符 |
| ==, !=, <=>, eq, nq, cmp |
相等比较运算符 |
| & |
按位与 |
| |, ^ |
按位 OR 和 XOR |
| && |
逻辑与 |
| || |
逻辑或 |
| . . |
列出范围运算符 |
| ? and : |
条件运算符 |
| =, +=,-=, *= |
赋值运算符 |
| , |
逗号运算符 |
| not |
低优先级逻辑非 |
| and |
低优先级逻辑与 |
| or, xor |
低优先级逻辑 OR 和 XOR |
Perl 运算符结合性
运算符的结合性可帮助您决定是从(从左到右)还是从(从右到左)计算方程。操作顺序很重要。有时从两边看是一样的,但有时会产生巨大的差异。
例如,
这道题的答案从左到右都是一样的。
3 ∗∗ 2 ∗∗ 3
这个问题的答案是(9 ∗∗ 3) 从左侧和(3 ∗∗ 8) 从右侧。两个答案都有很大的不同。
示例:
use 5.010;
use strict;
use warnings;
my $result = 3 ** 2 ** 3;
say $result;
输出:
Perl 关联表
| 运营商 |
说明 |
| ++,-- |
方向顺序在这里不适用 |
| -, ~, ! |
从右到左 |
| ** |
从右到左 |
| =~, !~ |
从左到右 |
| *,/, %, x |
从左到右 |
| +、-、. |
从左到右 |
| <<,>> |
从左到右 |
| -e,-r |
方向顺序在这里不适用 |
| <, <=,>, >=, lt, le, gt, ge |
从左到右 |
| ==, !=, <=>, eq, ne, cmp |
从左到右 |
| & |
从左到右 |
| |, ^ |
从左到右 |
| && |
从左到右 |
| || |
从左到右 |
| .. |
从左到右 |
| ?和: |
从右到左 |
| =, +=,-=, *= |
从右到左 |
| , |
从左到右 |
| 不是 |
从左到右 |
| 和 |
从左到右 |
| 或,异或 |
从左到右 |
Perl Arity
运算符的数量可以定义为其操作的操作数的数量。
A nullary 运算符对零操作数进行操作,一元 运算符对一个操作数进行操作,二元 运算符对两个操作数进行操作,以及列表 运算符对操作数列表进行操作。
例如,
算术运算符通常是左结合的。这里,(3 + 3) 首先计算,然后转到第二个(-) 运算符。
示例:
use 5.010;
use strict;
use warnings;
my $result = ( 5-2 + 10 ) * 2;
say $result;
输出:
Perl Fixity
运算符的固定性可以定义为其相对于其操作数的位置。
例如,
中缀运算符出现在其操作数之间..
3 + 2
这里,+ 运算符出现在操作数 3 和 2 之间
前缀运算符出现在其操作数之前。
! $a,-3x
这里,! and-运算符出现在操作数 $a 和 3 之前。
后缀运算符出现在其操作数之后。
$x ++
这里,++ 运算符出现在操作数 $x 之后。
环绕运算符围绕其操作数。比如散列构造函数和引用运算符..
(qq[...])
后环绕运算符跟随某些操作数并包围一些操作数。
$hash{$a}