03.Perl -- 数据运算
2022-05-19 本文已影响0人
QXPLUS
运算符
四则运算:+
-
*
/
- 字符串的四则运算
在perl的规则中,如果一个字符串进行四则也能算,perl判断第一个字符是否在[0-9]之间,如果不是以[0-9]开头,则在进行运算的时候会舍弃他的值(0)
use warnings;
my $string1="abc3";
my $string2="3abc";
my $string3="30abc2";
my $number1=5;
my $result1=$string1 + $number1; # 0 + 5
my $result2=$string2+ $number1; # 3 + 5
my $result3=$string3+ $number1; # 30 + 5
printf "result1: $result1\n"; # 5
printf "result2: $result2\n"; # 8
printf "result3: $result3\n"; # 35
- 幂运算符
**
$test1=2;
$test2=3;
$test3=$test1**$test2;
$test4=$test1**3;
注意:
- 涉及开方运算的时候,基数不能为负数
(-5)**2.5
# error, 返回值为nan
- 幂运算的结果不能超出计算机的显示范围
10**999999
# error, 返回值为inf
-
%
取余运算
在进行取余运算的时候,如果第二个数为小数,perl会自动先对其取整,再进行取余运算
5%2.67
# 相当于 5%2 -
单目负操作符
属于单目操作符,标识数字的正负属性
use warnings;
$data1 = -5;
$data2 = -$data1;
$data3 = -(-$data2);
$data4 = -5;
$data5 = --$data4;
printf ("$data1\n"); # -5
printf ("$data2\n"); # 5
printf ("$data3\n"); # 5
printf ("$data4\n"); # -5
printf ("$data5\n"); # -6
比较运算符
-
数字比较操作符
<
>
==
:等于
>=
<=
!=
<=>
: 比较,返回1,0,-1 -
字符串比较操作符
gt
:>
ge
:>=
lt
:<
le
:<=
eq
:==
ne
:!=
cmp
:<=>
, compare, 比较,返回1,0,-1
逻辑位运算符
用于逻辑判断,结果是“真”或者“假”, 返回Bool类型
逻辑或: $a || $b
或者 $a or $b
逻辑与: $a && $b
或者 $a and $b
逻辑非: !$a
或者 not $a
逻辑异或: $a xor $b
逻辑位运算符一般会和if
while
等循环结构一起使用。
位运算符
多用于二进制运算
按位与:&
按位或:|
按位非:~
按位异或:^
左移:<<
右移:>>
字符串连接运算符和重复运算符
-
.
:连接运算符 -
x
:重复运算符
$str1 = "begin";
$str1 = $str1." here"; # str1 = "begin here"
$str2 = $str1 x 2; # str2 = "begin herebegin here"
逗号运算符
逗号运算符可以用于提高程序的可读性,其前面的表达式先行运算
$var1 += 1, $var2 = $var1;
# 等价于
$var1 += 1;
$var2 = $var1;
条件运算符
形式为:
条件?值1:值2
- 当条件为真,取值1; 否则,取值2
$rst = $var == 0?14:7;
在Perl 5中,还可以在赋值式左边使用条件操作符来选择被赋值的变量
$condvar==43?$var1=14:$var2=14;