2010-10-09 47 views
1

可能重复:
Autoincrementing letters in PerlPerl如何预先增加字母?

我想了解Perl的预先递增运算符。对于每个不同的变量,我发现在Perl中预增加操作符的行为很奇怪。

实施例:

#!/usr/bin/perl 
$a = "bz"; 
print ++$a, "\n"; 

结果:CA

#!/usr/bin/perl 
$a = "9z"; 
print ++$a, "\n"; 

结果:10
不应结果是10A?

#!/usr/bin/perl 
$a = "bxz"; 
print ++$a, "\n"; 

结果:BYA
不宜结果是CYA?

回答

9

结果不应该是10a吗?

不,因为魔法增量行为不适用于字母跟在数字后面的值。这些简单地转换为数字,并随着数字增加。具体而言,“神奇增量”只能发生在匹配/^[a-zA-Z]*[0-9]*\z/,每perlop的值。

不应该结果是cya吗?

没有没有理由再次进行。 “z”换行为“a”,前面的“x”增加为“y”,但没有换行,所以没有进一步的进位。