Perl - 将每个条目保存在新行的文件中

时间:2017-10-16 09:11:45

标签: perl

我正在使用Perl脚本,该脚本使用glob检查目录的内容,然后将输出写入新文件。但是文件中的每个条目都使用空格分隔,我需要它来打印新行中的每个条目。我的代码就像这样

open(New, ">/u/smanik/xyz.txt");

@files = glob('/user/manik/*.csv');
$size  = @files;

print "Total no of files: $size \n";

print New @files;

open(New, "/user/manik/xyz.txt");
while ( <New> ) {
    print "$_";
}

close(New);

这是通过在文件中打印

来提供输出
/user/manik/A.csv /user/manik/B.csv

但我需要将它打印在像

这样的文件中
A.csv
B.csv
C.csv

我尝试在第五行添加\n,但这不起作用。

1 个答案:

答案 0 :(得分:0)

如果您希望它打印换行符,您需要告诉它。

my @foo = (1, 2, 3);
print @foo;

这将打印

123

那是因为数组@foo被视为print的参数列表,它将一个接一个地输出所有参数。

my @foo = (1, 2, 3);
print "@foo";

现在这将打印

1 2 3

因为正在使用"" output field separator插入双引号$,字符串中的数组,默认情况下这是一个空格

如果您希望它使用换行符,最简单的方法是使用\n join数组生成一个字符串作为print的参数。

my @foo = ( 1, 2, 3 );
print join "\n", @foo;

那会给你

1
2
3