Perl循序渐进
目 录 第一章 第二章 第三章 第四章 第五章 第六章 附录一 附录二

三、Perl的运算符号字符

赋值(Assignment)运算符
符号 范例 说明
= $x=$y; 将$x的值指派给$y
+= $x+=$y;
$x=$x+$y;
将$x加$y之后再指派给$x
-= $x-=$y;
$x=$x-$y;
将$x减$y之后再指派给$x
*= $x*=$y;
$x=$x*$y;
将$x乘$y之后再指派给$x
/= $x/=$y;
$x=$x/$y;
求出$x除以$y之后的商数,再指派给$x
**= $x**=$y;
$x=$x**$y;
将$x乘上$y次方之后再指派给$x
%= $x%=$y;
$x=$x%$y;
求出$x除以$y的余数以后,再指派给$x
.= $str1.=$str2;
$str1=$str1.$str2;
将$str1这个字符串再加上$str2这个字符串之后,再指派给$str1这个字符串
x= $strx=$y;
$str=$strx$y;
重复$str字符串$y次,并反结果指派给str这个字符串
算术(Arithmetic)运算符  
符号 范例 说明
+ $z=$x+$y 将$x和$y相加之后,再将结果指派给$z
- $z=$x-$y 将$x减掉$y之后,再将结果指派给$z
* $z=$x*$y 将$x和$y相乘之后,再将结果指派给$z
/ $z=$x/$y 将$x除以$y之后,再将商数指派给$z
% $z=$x%$y 将$x除以$y之后,再将余数指派给$z
** $z=$x**$y 将$x乘以$y之后,再将结果指派给$z
++ $x++;++$x; 如同$x=$x++1;将$x加一以后再将结果指派给$x
-- $x--;--$x; 如同$x=$x-1;将$x减一以后再将结果指派给$x
. $z=$x.$y; 将$x字符串和$y字符串连接之后,再将结果指派给$z
数值(Numeric Values)关系运算符
符号 范例 说明
> $x>$y 如果$x大于$y,返回1的值,否则返回0
>= $x>=$y 如果$x大于等于$y,返回1的值,否则返回0
< $x<$y 如果$x小于$y,返回1的值,否则返回0
<= $x<=$y 如果$x小于等于$y,返回1的值,否则返回0
== $x==$y 如果$x等于$y,返回1的值,否则返回0
!= $x!=$y 如果$x不等于$y,返回1的值,否则返回0
<=> $x<=>$y 如果$x大于$y,返回1的值,如果$x等于$y,否则返回0;&127;如果 $x小于$y,则返回-1的值
字符串(String Values)关系运算符
符号 范例 说明
gt $str1 gt $str2 如果$str1大于$str2,返回1的值,否则返回0
ge $str1 ge $str2 如果$str1大于等于$str2,返回1的值,否则返回0
lt $str1 lt $str2 如果$str1小于$str2,返回1的值,否则返回0
le $str1 le $str2 如果$str1小于等于$str2,返回1的值,否则返回0
eq $str1 ep $str2 如果$str1等于$str2,返回1的值,否则返回0
ne $str1 ne $str2 如果$str1不等于$str2,返回1的值,否则返回0
cmp $str1 cmp $str2 如果$str1大于$str2,返回1的值,如果$str1等于$str2,返回0,如果$str1小于$str2,则返回-1的值
逻辑(Logical)运算

1 $x&&$y(And)

$x $y 结果

真(True) 真(True) 真(True)

真(True) 假(False) 真(True)

假(False) 真(True) 假(False)

假(False) 假(False) 假(False)

2 $x||$y(Or)

$x $y 结果

真(True) 真(True) 真(True)

真(True) 假(False) 真(True)

假(False) 真(True) 真(True)

假(False) 假(False) 假(False)

3 $x(Not)

$x 结果

真(True) 假(False)假(False) 真(True)

其它常用的运算符

指令:..区块运算符(Range Operator)

说明:这个运算符是Perl语言中特有的运算符,是一个很实用的运算符.

范例:

@digits=(1..9); #此时@digits=(1,2,3,4,5,6,7,8,9);
@digits=('01'..'05'); #此时@digits=(01,02,03,04,05);
@char=('A'..'E'); #此时@char('A','B','C','D','E',);
@total=(1..3,'A'..'B'); #此时@total=(1,2,3'A','B');

指令: 判别运算式?运算1:运算式2 条件运算符(Conditional Operator)

说明: 这个语法的意义和C语言一样,如果判别运算式的值是真(True)的话,则做运算 ,1的运算,如果判别运算式是假(False)的话,则做运算式2的运算.

范例:

$price=($age>60)? 100:200;
如果$age大于60的话,则$price等于100,否则$price等于200.

常用的文件数据(File test)运算符
范例 说明
-r $file 如果$file是可读取的话,返回1的值
-w $file 如果$file是可写入的话,返回1的值
-x $file 如果$file是可执行的话,返回1的值
-e $file 如果$file存在的话,返回1的值
-o $file 如果$file是被执行才所拥有的话,返回1的值
-s $file 返回$file的文件大小(bytes)
-f $file 如果$file是正常文件的话,返回1的值
-T $file 如果$file是文本文件的话,返回1的值
-B $file 如果$file是Binary文件的话,返回1的值
-M $file 返回$file文件最后一次更改时间到现在的日期数
 

[content]