Perl 操作符怎么用?有哪些类型和用法?

文章导读
上一个 测验 下一个 什么是运算符? 可以用表达式 4 + 5 等于 9 来简单说明。这里 4 和 5 称为操作数,+ 称为运算符。Perl 语言支持多种运算符类型,以下是重要且最常用的运算符列表 −
📋 目录
  1. 什么是运算符?
  2. Perl 算术运算符
  3. Perl 相等运算符
  4. Perl 赋值运算符
  5. Perl 按位运算符
  6. Perl 逻辑运算符
  7. 类似引号的运算符
  8. 杂项运算符
  9. Perl 运算符优先级
A A

Perl - 运算符



上一个
测验
下一个

什么是运算符?

可以用表达式 4 + 5 等于 9 来简单说明。这里 4 和 5 称为操作数,+ 称为运算符。Perl 语言支持多种运算符类型,以下是重要且最常用的运算符列表 −

  • Arithmetic Operators
  • Equality Operators
  • Logical Operators
  • Assignment Operators
  • Bitwise Operators
  • Logical Operators
  • Quote-like Operators
  • Miscellaneous Operators

让我们逐一查看所有运算符。

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

lt

如果左操作数在字符串比较中小于右操作数,则返回真。

示例 − ($a lt $b) 为真。

2

gt

如果左操作数在字符串比较中大于右操作数,则返回真。

示例 − ($a gt $b) 为假。

3

le

如果左操作数在字符串比较中小于或等于右操作数,则返回真。

示例 − ($a le $b) 为真。

4

ge

如果左操作数在字符串比较中大于或等于右操作数,则返回真。

示例 − ($a ge $b) 为假。

5

eq

如果左操作数在字符串比较中等于右操作数,则返回真。

示例 − ($a eq $b) 为假。

6

ne

如果左操作数在字符串比较中不等于右操作数,则返回真。

示例 − ($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

+=

加法并赋值运算符,将右侧操作数加到左侧操作数上,并将结果赋给左侧操作数

示例$c += $a 等价于 $c = $c + $a

3

-=

减法并赋值运算符,从左侧操作数中减去右侧操作数,并将结果赋给左侧操作数

示例$c -= $a 等价于 $c = $c - $a

4

*=

乘法并赋值运算符,将右侧操作数乘以左侧操作数,并将结果赋给左侧操作数

示例$c *= $a 等价于 $c = $c * $a

5

/=

除法并赋值运算符,用左侧操作数除以右侧操作数,并将结果赋给左侧操作数

示例$c /= $a 等价于 $c = $c / $a

6

%=

取模并赋值运算符,使用两个操作数取模,并将结果赋给左侧操作数

示例$c %= $a 等价于 $c = $c % a

7

**=

幂运算并赋值运算符,对操作数执行指数(幂)计算,并将结果赋给左侧操作数

示例$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

|

二进制 OR 运算符,如果该位存在于任一操作数中,则将其复制到结果中。

示例($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 为真,变量 $b 为假,那么 −

查看示例

序号 运算符 & 描述
1

and

称为逻辑 AND 运算符。如果两个操作数都为真,则条件为真。

示例($a and $b) 为假。

2

&&

C 风格的逻辑 AND 运算符。如果该位在两个操作数中都存在,则将其复制到结果中。

示例($a && $b) 为假。

3

or

称为逻辑 OR 运算符。如果两个操作数中任一不为零,则条件为真。

示例($a or $b) 为真。

4

||

C 风格的逻辑 OR 运算符。如果该位存在于任一操作数中,则将其复制到结果中。

示例($a || $b) 为真。

5

not

称为逻辑 NOT 运算符。用于反转其操作数的逻辑状态。如果条件为真,则逻辑 NOT 运算符将其变为假。

示例not($a and $b) 为真。

类似引号的运算符

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

..

范围运算符 .. 返回从左值到右值(按 1 递增)计数的值列表

示例 − (2..5) 将给出 (2, 3, 4, 5)

4

++

自增运算符将整数值增加 1

示例 − $a++ 将给出 11

5

--

自减运算符将整数值减少 1

示例 − $a-- 将给出 9

6

->

箭头运算符主要用于从对象或 class 名称中解引用方法或变量

示例 − $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