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

时间:2014-02-25 23:05:29

标签: perl

问题。我试图从命令行读取perl字符串,例如“abcdef”然后将其拆分为“a_b_c_d_e_f”。

我正在努力学习逻辑部分。任何想法?

#!/usr/bin/perl

while($line=<STDIN>){
  chomp $line;
  split $line;

join ("_", $line);

print $line;
}

4 个答案:

答案 0 :(得分:3)

The split manpage实际上包含了这个例子:

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

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

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

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

答案 1 :(得分:1)

您需要的是

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

答案 2 :(得分:0)

一衬垫:

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

您可以详细了解perl的split()函数here

答案 3 :(得分:0)

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

use strict;
use warnings;

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

输出:

a_b_c_d_e_f

希望这有帮助!