Perl教程
Perl控制语句
Perl高级

Perl 运算符

Perl 运算符

perl 运算符是一系列用作语法的符号。运算符是一种函数,其操作数是参数。

Perl 运算符优先级

Perl 优先级就像数学中的 BODMAS。加法和减法总是在乘法和除法之后。
例如,
8 + 4-5 * 6 / 3 = 2
这里,答案将是 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;
输出:
2
80

Perl 运算符优先级表

操作符 说明
++,-- 自增、自减
-, ~, ! 具有一个操作数的运算符
** 求幂
=~, !~ 模式匹配运算符
*,/, %, x 乘法、除数、余数、重复
+、-、. 加法、减法、串联
<<,>> 移位运算符
-e,-r 文件状态运算符
<, <=,>, >=, lt, le, gt, ge 不等式比较运算符
==, !=, <=>, eq, nq, cmp 相等比较运算符
& 按位与
|, ^ 按位 OR 和 XOR
&& 逻辑与
|| 逻辑或
. . 列出范围运算符
? and : 条件运算符
=, +=,-=, *= 赋值运算符
, 逗号运算符
not 低优先级逻辑非
and 低优先级逻辑与
or, xor 低优先级逻辑 OR 和 XOR

Perl 运算符结合性

运算符的结合性可帮助您决定是从(从左到右)还是从(从右到左)计算方程。操作顺序很重要。有时从两边看是一样的,但有时会产生巨大的差异。
例如,
7 + 4 + 2 = 13
这道题的答案从左到右都是一样的。
3 ∗∗ 2 ∗∗ 3
这个问题的答案是(9 ∗∗ 3) 从左侧和(3 ∗∗ 8) 从右侧。两个答案都有很大的不同。
示例:
use 5.010;
use strict;
use warnings;
my $result = 3 ** 2 ** 3;
say $result;
输出:
6561

Perl 关联表

运营商 说明
++,-- 方向顺序在这里不适用
-, ~, ! 从右到左
** 从右到左
=~, !~ 从左到右
*,/, %, x 从左到右
+、-、. 从左到右
<<,>> 从左到右
-e,-r 方向顺序在这里不适用
<, <=,>, >=, lt, le, gt, ge 从左到右
==, !=, <=>, eq, ne, cmp 从左到右
& 从左到右
|, ^ 从左到右
&& 从左到右
|| 从左到右
.. 从左到右
?和: 从右到左
=, +=,-=, *= 从右到左
, 从左到右
不是 从左到右
从左到右
或,异或 从左到右

Perl Arity
运算符的数量可以定义为其操作的操作数的数量。
A nullary 运算符对零操作数进行操作,一元 运算符对一个操作数进行操作,二元 运算符对两个操作数进行操作,以及列表 运算符对操作数列表进行操作。
例如,
3 + 3 ? 2
算术运算符通常是左结合的。这里,(3 + 3) 首先计算,然后转到第二个(-) 运算符。
示例:
use 5.010;
use strict;
use warnings;
my $result = ( 5-2 + 10 ) * 2;
say $result;
输出:
26

Perl Fixity
运算符的固定性可以定义为其相对于其操作数的位置。
例如,
中缀运算符出现在其操作数之间..
3 + 2
这里,+ 运算符出现在操作数 3 和 2 之间
前缀运算符出现在其操作数之前。
! $a,-3x
这里,! and-运算符出现在操作数 $a 和 3 之前。
后缀运算符出现在其操作数之后。
$x ++
这里,++ 运算符出现在操作数 $x 之后。
环绕运算符围绕其操作数。比如散列构造函数和引用运算符..
(qq[...])
后环绕运算符跟随某些操作数并包围一些操作数。
$hash{$a}

昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4