时间: 2021-07-31 作者:daque
七、自增自减操纵符 :++、--(与c++中的用法沟通).不要在变量双方都运用此种操纵符:++$var-- # error.不要在变量自增/减后在同一表白式中再次运用:$var2 = $var1 + ++$var1; # error.在perl中++可用来字符串,但当结果字符为'z'、'z'、'9'时进位,如:$stringvar = "abc";$stringvar++; # $stringvar contains "abd" now$stringvar = "abc";$stringvar++; # $stringvar contains "abd" now$stringvar = "abz";$stringvar++; # $stringvar now contains "aca"$stringvar = "agzzz";$stringvar++; # $stringvar now contains "ahaaa" $stringvar = "ab4";$stringvar++; # $stringvar now contains "ab5"$stringvar = "bc999";$stringvar++; # $stringvar now contains "bd000" .不要运用--,perl将先将字符串变换为数字再举行自减$stringvar = "abc";$stringvar--; # $stringvar = -1 now.即使字符串中含有非假名且非数字的字符,或数字坐落假名中,则过程++演算前值变换为数字零,所以截止为1,如:$stringvar = "ab*c";$stringvar++;$stringvar = "ab5c";$stringvar++; 八、字符串结合和反复操纵符 联接: .反复:x联接且赋值(一致+=): .=例:$newstring = "potato" . "head";$newstring = "t" x 5;$a = "be";$a .= "witched"; # $a is now "bewitched"九、逗点操纵符 其前方的表白式进步行演算,如:$var1 += 1, $var2 = $var1;等价于$var1 += 1;$var2 = $var1;运用此操纵符的独一来由是普及步调的可读性,将联系出色的两个表白式贯串在一道,如:$val = 26;$result = (++$val, $val + 5); # $result = 32提防即使此处没有括号则意旨各别:$val = 26;$result = ++$val, $val + 5; # $result = 27十、前提操纵符 与c中一致,前提?值1:值2,当前提为真时取值1,为假时取值2,如:$result = $var == 0 ? 14 : 7;$result = 43 + ($divisor == 0 ? 0 : $dividend / $divisor);perl 第5中学,还不妨在赋值式左边运用前提操纵符来采用被赋值的变量,如:$condvar == 43 ? $var1 : $var2 = 14;$condvar == 43 ? $var1 = 14 : $var2 = 14;十一、操纵符的步骤 table 3.6. 操纵符步骤
操纵符
刻画
++, --
自增,自减
-, ~, !
单目
**
乘幂
=~, !~
形式配合
*, /, %, x
乘,除,取余,反复
+, -, .
加,减,联接
<<, >>
移位
-e, -r, etc.
文献状况
<, <=, >, >=, lt, le, gt, ge
不等比拟
==, !=, <=>, eq, ne, cmp
十分比拟
&
位与
|, ^
位或,位异或
&&
论理与
||
论理或
..
列表范畴
? and :
前提操纵符
=, +=, -=, *=,
赋值
and so on
,
逗点操纵符
not
low-precedence logical not
and
low-precedence logical and
or, xor
low-precedence logical or and xor
.操纵符贯串性(associativity):table 3.7. 操纵符贯串性
操纵符
贯串性
++, --
无
-, ~, !
right-to-left
**
right-to-left
=~, !~
left-to-right
*, /, %, x
left-to-right
+, -, .
left-to-right
<<, >>
left-to-right
-e, -r,
无
<, <=, >, >=, lt, le, gt, ge
left-to-right
==, !=, <=>, eq, ne, cmp
left-to-right
&
left-to-right
|, ^
left-to-right
&&
left-to-right
||
left-to-right
..
left-to-right
? and :
right-to-left
=, +=, -=, *=,
right-to-left
and so on
,
left-to-right
not
left-to-right
and
left-to-right
or, xor
left-to-right
倡导:1、当你不决定某操纵符能否先实行时,确定要用括号精确之。2、用多行、空格等办法普及步调的可读性。