任何人都可以解释这段代码中发生的事情背后的逻辑吗?我知道它的目的是什么,但不知道它的工作原理。
{{1}}
答案 0 :(得分:3)
打印$i
的值以查看正在进行的操作:
#! /usr/bin/perl
use warnings;
use strict;
my $x = 1234567890;
for (my $i = -3; $i > -1 * length $x; $i -= 4) {
substr( $x, $i, 0 ) = ',';
print "($i)<$x>\n";
}
输出:
(-3)<1234567,890>
(-7)<1234,567,890>
(-11)<1,234,567,890>
substr
中的负位置表示&#34;从右边开始计数&#34;。指定长度0意味着我们插入子字符串。我们在右边的每组3位数之前添加逗号,但我们需要将位置更改为-4,因为我们需要跳过上一步中添加的逗号。