STDOUT文件 - perl

use*_*288 0 regex perl stdout

好的,所以我读了我的文件并打印得很好,但现在我正在尝试将数据输出到一个新文件,但它无法正常工作.任何人都可以在这看到错误吗?

 #!/usr/bin/perl -w
use strict;
use warnings;
use diagnostics;

$| = 1;

open MYFILE, "+<", 'source_file.txt' or die $!;
my $linenum = 1;
while (<MYFILE>) {
    print $linenum++;
    print ": $_\n";
}

open OUT, "+>", 'output_report.txt' or die $!;
while (<OUT>) {
print "SUMMARY SECTION:\n\n";
print "# of total lines in the file - '2006'\n\n";

}
Run Code Online (Sandbox Code Playgroud)

新文件'output_report'已创建,但是当我打开新的txt文件时,这是我的不幸,空白.另外,如果我使用STDOUT,是否必须使用STDERR?谢谢!

yst*_*sth 6

更改:

while (<OUT>) {
    print ...
    print ...
}
Run Code Online (Sandbox Code Playgroud)

至:

print OUT ...
print OUT ...
Run Code Online (Sandbox Code Playgroud)

<>是为了阅读,而不是写作.你的代码是从文件中读取的,这是空的,所以它甚至都不会进入循环(这将打印到STDOUT,而不是文件).

此外,如果您只是阅读,请使用<,而不是+<.如果你只是写作,请使用>,而不是+>.其他模式用于对同一文件进行读写混合.