运算符是Perl中用于执行计算、比较和逻辑操作的基本工具。本文将介绍Perl的各类运算符,包括算术、比较、逻辑等,及其应用场景。


目录

  1. 运算符概述
  2. 算术运算符
  3. 比较运算符
  4. 逻辑运算符
  5. 赋值运算符
  6. 位运算符
  7. 其他常用运算符
  8. 参考资料

1. 运算符概述

Perl 的运算符根据功能分为多种类型,支持数字、字符串和逻辑操作。Perl 区分数字和字符串运算符,以适应不同数据类型。

站内链接:了解变量操作,见 Perl 变量


2. 算术运算符

用于数字计算:

  • +:加法
  • -:减法
  • *:乘法
  • /:除法
  • %:取模
  • **:幂

示例

use strict;
use warnings;

my $a = 10;
my $b = 3;
print $a + $b, "\n";  # 13
print $a - $b, "\n";  # 7
print $a * $b, "\n";  # 30
print $a / $b, "\n";  # 3.333...
print $a % $b, "\n";  # 1
print $a ** 2, "\n";  # 100

3. 比较运算符

Perl 区分数字和字符串比较:

数字比较

  • ==:等于
  • !=:不等于
  • <:小于
  • >:大于
  • <=:小于等于
  • >=:大于等于

字符串比较

  • eq:等于
  • ne:不等于
  • lt:小于
  • gt:大于
  • le:小于等于
  • ge:大于等于

示例

my $x = 5;
my $y = "5";
if ($x == $y) { print "数字相等\n"; }  # 真
if ($x ne $y) { print "字符串不同\n"; }  # 真
if ($x < 10) { print "小于10\n"; }  # 真
if ("apple" lt "banana") { print "apple 在前\n"; }  # 真

比较运算符 <=>cmp

  • <=>:数字比较,返回 -1(小于)、0(等于)、1(大于)。
  • cmp:字符串比较,类似 <=>
print 5 <=> 3, "\n";  # 1
print "cat" cmp "dog", "\n";  # -1

4. 逻辑运算符

用于条件判断:

  • &&and:逻辑与
  • ||or:逻辑或
  • !not:逻辑非

示例

my $p = 1;
my $q = 0;
if ($p && !$q) { print "真\n"; }  # 真
if ($p || $q) { print "至少一个真\n"; }  # 真

注意&&|| 优先级高于 andor,后者常用于流程控制。


5. 赋值运算符

结合运算和赋值:

  • =:赋值
  • +=-=*=/=%=:复合赋值
  • .=:字符串连接赋值
  • x=:字符串重复赋值

示例

my $n = 10;
$n += 5;  # 15
$n .= " units";  # 15 units
print "$n\n";
my $s = "ha";
$s x= 3;  # hahaha
print "$s\n";

6. 位运算符

操作二进制位:

  • &:按位与
  • |:按位或
  • ^:按位异或
  • ~:按位取反
  • <<:左移
  • >>:右移

示例

my $b1 = 5;  # 二进制 0101
my $b2 = 3;  # 二进制 0011
print $b1 & $b2, "\n";  # 1 (0001)
print $b1 | $b2, "\n";  # 7 (0111)
print $b1 << 1, "\n";  # 10 (1010)

7. 其他常用运算符

字符串运算符

  • .:连接
  • x:重复
my $str = "Perl" . " " . "Rocks";  # Perl Rocks
my $laugh = "ha" x 4;  # hahahaha
print "$str, $laugh\n";

范围运算符 ..

生成序列:

my @range = (1..5);  # 1 2 3 4 5
print "@range\n";

引用运算符 \

创建引用:

my $var = 42;
my $ref = \$var;
print $$ref, "\n";  # 42

站内链接:了解引用,见 Perl 数据类型


8. 参考资料

站内链接

出站链接

其他资源

  • 《Learning Perl》 – 运算符章节。
  • X社区:搜索 #PerlOperators 获取示例。

这篇指南全面介绍了Perl的运算符及其用法。如果需要深入某个部分(比如位运算的实际应用或运算符优先级),请告诉我!