Perl打印显示每个元素的前导空格

Eld*_*sis 4 arrays perl

我将一个文件加载到一个数组中(数组元素中的每一行).我处理数组元素并保存到一个新文件.我想打印出新文件:

print ("Array: @myArray");
Run Code Online (Sandbox Code Playgroud)

但是 - 它显示了它们在每一行都有前导空格.是否有一种简单的方法可以打印出没有前导空格的数组?

Mat*_*ick 7

是的 - 使用join:

my $delimiter = '';  # empty string

my $string = join($delimiter, @myArray);

print "Array: $string";
Run Code Online (Sandbox Code Playgroud)


Kon*_*rak 5

马特·芬威克Matt Fenwick)是正确的。当您的数组用双引号引起来时,Perl会将元素之间的值$"(默认为空格;请参见perlvar手册页)放置在值之间。您可以将其放在引号之外:

print ('Array: ', @myArray);
Run Code Online (Sandbox Code Playgroud)

如果要用逗号分隔元素,请更改输出字段分隔符

use English '-no_match_vars';
$OUTPUT_FIELD_SEPARATOR = ',';     # or "\n" etc.
print ('Array: ', @myArray);
Run Code Online (Sandbox Code Playgroud)

  • 我不知道您想用最后一句话表达什么,请澄清。 (2认同)