Perl如何预先增加字母?

hit*_*cky 1 perl

可能重复:
在Perl中自动增加字母

我试图了解Perl的预增量运算符.对于每个不同的变量,我发现Perl中的预增量运算符行为很奇怪.

示例:

#!/usr/bin/perl
$a = "bz";
print ++$a, "\n";
Run Code Online (Sandbox Code Playgroud)

结果:ca

#!/usr/bin/perl
$a = "9z";
print ++$a, "\n";
Run Code Online (Sandbox Code Playgroud)

结果:10结果
不应该是10a?

#!/usr/bin/perl
$a = "bxz"; 
print ++$a, "\n";
Run Code Online (Sandbox Code Playgroud)

结果:bya结果
不应该是cya吗?

hob*_*bbs 9

10a结果不应该是?

不,因为魔法增量行为不适用于具有数字后面的字母的值.这些只是转换为数字,并作为数字递增.具体而言,"神奇的增量"只能发生在一个值匹配/^[a-zA-Z]*[0-9]*\z/,每perlop得到.

结果不应该是cya吗?

不,没有理由再次携带."z"换行到"a",前面的"x"递增变为"y",但是没有换行,所以没有进一步的进位.