在perl中创建输出文件后删除空格的问题

时间:2012-08-29 14:50:02

标签: perl

我编写了一个脚本,将输出保存在Perl脚本中,但由于某种原因,它会在每行的末尾留下空格。我尝试使用Perl正则表达式,但它不起作用。有人可以看看我的代码,让我知道我做错了什么?

我的代码

 open FILE, ">", "finaloutput.txt" || die "cannot create";
 my @output = ``; # (here i am using back ticks to run third party command)
 foreach  my $output (@output) {
     chomp $output;
     my $remove_whitespace = $output;
     $remove_whitespace =~ s/^\s+|\s+$//g;
     print  FILE "$remove_whitespace  \n";
 }
 close FILE;

即使这样做,它也会在输出的每一行的末尾留下一个空格。请指导我。

感谢。

3 个答案:

答案 0 :(得分:6)

当您执行print FILE "$remove_whitespace \n";时,在每行的末尾添加2个空格,而不是print FILE "$remove_whitespace\n";

答案 1 :(得分:1)

你在每一行的末尾放了两个空格:

print  FILE "$remove_whitespace  \n";
                               ^^
                               ||

摆脱那些!解决方案:

print FILE "$remove_whitespace\n";
  -or-
print FILE $remove_whitespace, "\n";

答案 2 :(得分:0)

出于某种原因,您在print声明的末尾包含多个空格。将您的print语句更改为:

print FILE "$remove_whitespace\n";

此外,您不应再使用全局样式的文件句柄。相反,使用类似的东西:

open my $file, '>', "output.txt";
print $file "Some string\n";
close $file;