【问题标题】:How does Perl pre-increment letters? [duplicate]Perl 如何预先增加字母? [复制]
【发布时间】:2010-10-09 15:31:22
【问题描述】:

可能重复:
Autoincrementing letters in Perl

我正在尝试理解 Perl 的预增量运算符。对于每个不同的变量,我发现 Perl 中的预增量运算符行为很奇怪。

例子:

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

结果:大约

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

结果:1​​0
结果不应该是10a吗?

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

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

【问题讨论】:

    标签: perl


    【解决方案1】:

    结果不应该是10a吗?

    不,因为神奇的增量行为不适用于数字后面有字母的值。这些只是简单地转换为数字并作为数字递增。具体来说,根据perlop,“神奇增量”只能发生在与/^[a-zA-Z]*[0-9]*\z/ 匹配的值上。

    结果不应该是cya吗?

    没有。没有理由进行第二次携带。 "z" 换行到 "a",前面的 "x" 递增成为 "y",但是没有换行,所以没有进位。

    【讨论】:

      【解决方案2】:

      【讨论】:

        猜你喜欢
        • 2014-01-22
        • 2016-08-09
        • 2010-10-23
        • 2011-03-31
        • 2012-01-19
        • 1970-01-01
        • 2020-05-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多