如何在Perl中反转一串数字?

I a*_* am 3 string perl reverse numbers delimited-text

我有一个包含数值的字符串.我想以相反的顺序显示数值.

一个不起作用的想法是使用内置的反向功能:

my $j = "12,11,10,9";
my $k = reverse($j);
print $k;
Run Code Online (Sandbox Code Playgroud)

但该代码输出:

9,01,11,21
Run Code Online (Sandbox Code Playgroud)

我们想要的时候:

9,10,11,12
Run Code Online (Sandbox Code Playgroud)

Gil*_*not 11

简洁版:

my $j = "12,11,10,9";
print join ",", reverse split /,/, $j;
Run Code Online (Sandbox Code Playgroud)

括号版本:

my $j = "12,11,10,9";
print(join(",", reverse(split(/,/, $j))));
Run Code Online (Sandbox Code Playgroud)

如果我稍微分解一下:

my $j = "12,11,10,9";
my @j = split /,/, $j;
print join ",", reverse @j;
Run Code Online (Sandbox Code Playgroud)

OUTPUT

9,10,11,12
Run Code Online (Sandbox Code Playgroud)

注意

  • 看到 perldoc -f reverse

  • 总是把`split /,/`写成一个正则表达式,而不是一个固定的字符串,这是一个好主意.看到太多人尝试"拆分"|"`之类的东西,并且没有任何线索为什么它不"工作". (6认同)