循环遍历Perl中的字符

Tom*_*rov 6 perl for-loop

我在使用循环时在Perl中循环遍历符号时遇到了一些奇怪的行为for.此代码段的工作方式与预期一致:

for (my $file = 'a'; $file le 'h'; $file++) {
    print $file;
}
Run Code Online (Sandbox Code Playgroud)

输出:abcdefgh

但当我尝试向后循环符号时,如下所示:

for (my $file = 'h'; $file ge 'a'; $file--) { 
    print $file;
}
Run Code Online (Sandbox Code Playgroud)

结果给了我以下几点.

输出:h

也许减量运算符的行为不像我认为它涉及到符号时的行为?

有没有人对此事有任何想法?我真的很感谢你的帮助!

问候,

汤米

Eri*_*rom 14

根据perlop,自动递减运算符并不神奇

你可以这样做:

for my $file (reverse 'a' .. 'h') { 
    print $file;
}
Run Code Online (Sandbox Code Playgroud)