每个打印语句后的 Perl 文件更新
Perl File Update After Each Print Statement
当我用 Perl 编写文件时,一旦程序完成,每个 Print 语句的完整内容都会在文件上更新。
有没有一种方法可以在执行每个打印语句后更新文件?
我试过设置 $|=1,但似乎不起作用。
将 $|
设置为非零值可在 仅当前选定的 输出文件句柄上启用自动刷新。默认情况下这是 STDOUT
除非你调用 select
来更改它
这意味着,如果您打开了文件的新句柄,$|
不会影响其行为
相反,您可以使用 IO::Handle
模块的 autoflush
方法。不需要 use IO::Handle
因为 IO::File
,自 v5.14
以来,任何版本的 perl 都按需加载子类 IO::Handle
看起来像这样
open my $fh, '>', 'myfile.txt' or die $!;
$fh->autoflush;
在此之后,使用 print $fh
发送到文件的任何内容都会立即刷新到磁盘
当我用 Perl 编写文件时,一旦程序完成,每个 Print 语句的完整内容都会在文件上更新。
有没有一种方法可以在执行每个打印语句后更新文件?
我试过设置 $|=1,但似乎不起作用。
将 $|
设置为非零值可在 仅当前选定的 输出文件句柄上启用自动刷新。默认情况下这是 STDOUT
除非你调用 select
来更改它
这意味着,如果您打开了文件的新句柄,$|
不会影响其行为
相反,您可以使用 IO::Handle
模块的 autoflush
方法。不需要 use IO::Handle
因为 IO::File
,自 v5.14
IO::Handle
看起来像这样
open my $fh, '>', 'myfile.txt' or die $!;
$fh->autoflush;
在此之后,使用 print $fh
发送到文件的任何内容都会立即刷新到磁盘