拆分Perl字符串并在其中添加_



问题。我正在尝试从命令行读取perl字符串,例如"abcdef",然后将其拆分为"a_b_cd_e_f"。

我在逻辑部分很吃力。有什么想法吗?

#!/usr/bin/perl
while($line=<STDIN>){
chomp $line;
split $line;
join ("_", $line);
print $line;
}

split手册页实际上包括以下示例:

print join(':', split('', 'abc')), "n";

调整为使用_代替:,使用$line代替'abc',我们得到:

print join('_', split('', $line)), "n";

最重要的一点是,split不修改其参数,它只返回一个列表,而join不修改参数,它只是返回一个字符串。因此,在不使用返回值的情况下调用splitjoin是没有意义的。

您需要的是

print join('_', split //, $line), "n";

一行:

print join('_', split('', $line)), 'n';

您可以在这里阅读更多关于perl的split()函数的信息。

除非必须使用split,否则可以使用字符间替换:

use strict;
use warnings;
my $string = 'abcdef';
$string =~ s/(?<=.)(?:)(?=.)/_/g;
print $string;

输出:

a_b_c_d_e_f

希望这能有所帮助!

相关内容

最新更新