perl语言中涉及的运算符很多,不便于记忆。还好,有好心的网友做了整理和归纳,现转载在此,希望对大家有用!
赋值 (Assignment) 运算符
算术 (Arithmetic) 运算符
数值 (Numeric Values) 关系运算符
字符串 (String Values) 关系运算符
逻辑 (Logical) 运算
其它常用的运算符
常用的文件数据 (File test) 运算符
?
| 赋值 (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) 运算符 ? |
| 符号 ? |
范例 |
结果 ? |
| && (And) ? |
$x&&$y |
真(True) 真(True) 真(True) 真(True) 假(False) 真(True) 假(False) 真(True) 假(False) 假(False) 假(False) 假(False) ? |
| || (Or) ? |
$x||$y |
真(True) 真(True) 真(True) 真(True) 假(False) 真(True) 假(False) 真(True) 真(True) 假(False) 假(False) 假(False) ? |
| (Not) ? |
$x(Not) |
真(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 |