天天看點

Perl中的自增、自減

自增和自減

perl也支援數值類型的自增和自減操作。不僅如此,還支援字元、字元串的自增、自減。

  • 如果自增(++)和自減(--)符号放在數值的前面,則先增減,再傳回;
  • 如果自增(++)和自減(--)符号放在數值的後面,則先傳回,再增減;
  • 如果自增、自減操作是獨立的一句表達式,則自增、自減符号放在前面或後面都是等價的;
$a=10;

# 以下4句為獨立的自增、自減表達式,自增自減符号的位置無所謂
$a++;    # 先傳回10,再遞增為11
++$a;    # 先遞增為12,再傳回12
--$a;    # 先遞減為11,再傳回11
$a--;    # 先傳回11,再遞減為10

# 以下4句為非獨立的自增、自減表達式,自增自減符号的位置有影響
$m = $a++;    # 先傳回10指派給$m,然後$a再遞增為11,是以執行結束後$m=10,$a=11
$m = ++$a;    # 先遞增為12,再指派給$m,是以執行結束後$m=12,$a=12
$m = --$a;    # 先遞減為11,再指派給$m,是以執行結束後$m=11,$a=11
$m = $a--;    # 先傳回11指派給$m,然後$a再遞減為10,是以執行結束後$m=11,$a=10
           

對于字元和字元串的自增、自減。規則是從最後一個字元按照ascii順序向上進一位,也就是A-->Z,a-->z,如果是Z或z字元,再進一位表示多加一個字元。看示例更容易了解。

$a="b"; say ++$a;
c
$a="ba"; say ++$a;
bb
$a="bz"; say ++$a;
ca
$a="Az"; say ++$a;
Ba
$a="bZ"; say ++$a;
cA
$a="zz"; say ++$a;
aaa
           

作者:駿馬金龍

出處:http://www.cnblogs.com/f-ck-need-u/

Linux運維交流群:921383787

Linux系列文章:https://www.junmajinlong.com/linux/index/

Shell系列文章:https://www.junmajinlong.com/shell/index/

網站架構系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html

MySQL/MariaDB系列文章:https://www.cnblogs.com/f-ck-need-u/p/7586194.html

Perl系列:https://www.junmajinlong.com/perl/index

Go系列:https://www.cnblogs.com/f-ck-need-u/p/9832538.html

Python系列:https://www.cnblogs.com/f-ck-need-u/p/9832640.html

Ruby系列:https://www.junmajinlong.com/ruby/index

作業系統系列:https://www.junmajinlong.com/os/index/

精通awk系列:https://www.junmajinlong.com/shell/awk/index