我需要将perl数组转换为单个字符串变量,其中包含用换行符分隔的所有数组项。
my $content = "";
@names=('A','C','C','D','E');
$content = $content . join($", @names) . "\n";
print $content;
Run Code Online (Sandbox Code Playgroud)
我打算将输出如下所示:
A
C
C
D
E
Run Code Online (Sandbox Code Playgroud)
但我得到:
A C C D E
Run Code Online (Sandbox Code Playgroud)
为什么不\n兑现换行符?
由于似乎不仅在每行之间都需要换行,而且在最后一行之后也需要换行,因此可以使用以下任一方法:
join("\n", @names) . "\n"
Run Code Online (Sandbox Code Playgroud)
要么
join("", map "$_\n", @names)
Run Code Online (Sandbox Code Playgroud)
这些等效,除了数组为空时。在这种情况下,第一个导致换行,第二个导致空字符串。
顺便说说,
$content = $content . EXPR;
Run Code Online (Sandbox Code Playgroud)
可以写成
$content .= EXPR;
Run Code Online (Sandbox Code Playgroud)