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}