我尝试将\ n添加到此来源的输出中:
sub fileresult{
open my $file;
my @listOfFiles;
while (<$file>) {
if (m/^\s+ (\w+)/x) {
push @listOfFiles, $1;
}
}
close $file;
open my $fh, '>', ".\input.txt" or die "Cannot open input.txt: $!";
print $fh join "\n", "@listOfFiles";
}
close $fh;
输出就像:
A B C
我想成为:
A
B
C
在单词的开头和单词的结尾处没有空格。
答案 0 :(得分:2)
示例代码中没有print
。你如何产生输出?我的魔球说你用了
print "@listOfFiles";
打印由特殊变量$"
分隔的数组成员,请参阅perlvar。您可以将其设置为换行符以更改输出:
{ local $" = "\n" ; print "@listOfFiles" }
或者,不那么模糊,您可以使用join
:
print join "\n", @listOfFiles;
答案 1 :(得分:1)
也许您不想替换任何内容并仅匹配它,m/^\s+ (\w+)/x
而不是s/^\s+ (\w+)/x/
此外,我看不到您打印它们的位置,但您可以在项目之间插入换行符,例如:
print join "\n", @listOfFiles;
或
do { local $" = "\n"; print "@listOfFiles" };