Arrays 将数组转换为字符串,并在字符串中嵌入换行符

Arrays 将数组转换为字符串,并在字符串中嵌入换行符,arrays,perl,Arrays,Perl,我需要将一个perl数组转换为一个字符串变量,其中包含所有用换行符分隔的数组项 my $content = ""; @names=('A','C','C','D','E'); $content = $content . join($", @names) . "\n"; print $content; 我希望输出类似于: A C C D E 但我得到: A C C D E 为什么换行符\n字符没有得到尊重?要加入一个介于换行符之间的数组,请使用 join("\n", @array) 您的代

我需要将一个perl数组转换为一个字符串变量,其中包含所有用换行符分隔的数组项

my $content = "";
@names=('A','C','C','D','E');
$content = $content . join($", @names) . "\n";
print $content;
我希望输出类似于:

A
C
C
D
E
但我得到:

A C C D E

为什么换行符
\n
字符没有得到尊重?

要加入一个介于换行符之间的数组,请使用

join("\n", @array)

您的代码使用
$”
变量的内容作为分隔符,默认情况下,该分隔符包含一个空格。

若要使用换行符连接数组,请使用

join("\n", @array)
您的代码使用
$”
变量的内容作为分隔符,默认情况下,该分隔符包含空格。

请执行以下操作:

$content = $content . join("\n", @names);
改为这样做:

$content = $content . join("\n", @names);

由于您不仅希望在每一行之间换行,而且希望在最后一行之后换行,因此您可以使用以下任一选项:

join(“\n”,@names)。“\n”
join(“,映射“$\n”,@names)
join(“\n”,@names,”)
除非数组为空,否则它们是等效的。在这种情况下,第一个结果是换行,另一个结果是空字符串


顺便说一下

 $content = $content . EXPR;
可以写成

 $content .= EXPR;

由于您不仅希望在每一行之间换行,而且希望在最后一行之后换行,因此您可以使用以下任一选项:

join(“\n”,@names)。“\n”
join(“,映射“$\n”,@names)
join(“\n”,@names,”)
除非数组为空,否则它们是等效的。在这种情况下,第一个结果是换行,另一个结果是空字符串


顺便说一下

 $content = $content . EXPR;
可以写成

 $content .= EXPR;
$”
变量保存Perl在双引号字符串中插入数组时在数组元素之间使用的值

也许您正在考虑输入或输出记录分隔符,
$/
$\

但是,您并不是真的想使用这些变量。如果您想要换行符,请使用换行符:

join "\n", @array;
$”
变量保存Perl在双引号字符串中插入数组时在数组元素之间使用的值。默认情况下(您没有更改它),它是一个空间

也许您正在考虑输入或输出记录分隔符,
$/
$\

但是,你并不是真的想玩这些变量。如果需要换行符,请使用换行符:

join "\n", @array;

有一点不同:如果数组是空的,
join(“,map“$\n”,@names)
产生
,而不是
“\n”
。我通常只做一些事情,例如
join(“\n”,@array,”)
有一点不同:如果数组是空的,
join(“,map“$\n”,@names)
产生
,而不是
“\n”
。我通常只做一些事情,例如,
join(“\n”、@array“”)