我在Perl中找到了有关自动刷新的各种信息,但是找不到任何有关格式完全相同的行的信息:
STDOUT->autoflush(1);
Run Code Online (Sandbox Code Playgroud)
这包含在我正在分析的程序中,我想更好地了解它的作用。程序开始时也有以下内容:
use IO::Handle;
Run Code Online (Sandbox Code Playgroud)
...我认为可能是相关的,但它在其文档中也未提及此方法。
该方法被列在IO ::句柄,你注意到了
Run Code Online (Sandbox Code Playgroud)... $io->autoflush ( [BOOL] ) $| ...
由此$|设置警戒/解除警戒,并将其发送到您$|在perlvar的解释
如果设置为非零,则在当前选择的输出通道上每次写入或打印后立即强制刷新。
从v5.14开始,您不需要这样做use IO::Handle,因为在需要时IO :: File为required。
此方法的特殊之处在于,即使没有提供任何值,它也会打开自动刷新功能,
$io->autoflush; # turned on ($| gets set)
Run Code Online (Sandbox Code Playgroud)
而其他相关参数(请参阅文档)在不带参数调用时不会更改当前值。