我正在使用File :: Slurp写入文件.问题是数组元素在一行上被写为单个字符串.我想在单独的行上打印数组元素.
我总是可以格式化我的数组元素,在每个元素中都有一个换行符,我不想这样做.
File :: Slurp是否支持在单独的行上打印数组元素的任何选项?我在文档中找不到任何选项.
use File::Slurp;
my @input = ();
push (@input, "1:2");
push (@input, "a:b");
write_file("./out", @input);
Run Code Online (Sandbox Code Playgroud)
输出看起来像这样
1:2a:b
Run Code Online (Sandbox Code Playgroud)
我想要
1:2
a:b
Run Code Online (Sandbox Code Playgroud)
我不认为File :: Slurp可以选择在单独的行上打印数组元素.使用map为所有数组元素添加换行符.这不会修改您的数组:
use warnings;
use strict;
use File::Slurp;
my @input = ();
push (@input, "1:2");
push (@input, "a:b");
write_file("./out", map { "$_\n" } @input);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,只需将Perl的$"变量设置为\n并将插值数组写入文件:
use strict;
use warnings;
use File::Slurp;
local $" = "\n";
my @input = ();
push( @input, "1:2" );
push( @input, "a:b" );
write_file( "./out", "@input" );
Run Code Online (Sandbox Code Playgroud)
输出到文件:
1:2
a:b
Run Code Online (Sandbox Code Playgroud)
从文档
write_file( $file_name, {atomic => 1}, map "$_=$conf{$_}\n", keys %conf ) ;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1746 次 |
| 最近记录: |