Perl,$ | ++有什么作用?

Bil*_*ill 3 perl

我正在重新考虑一些perl代码,而且看起来似乎是这种情况,Perl有一些奇怪的结构,很容易查找.

在这种情况下,我遇到了以下......

$|++;
Run Code Online (Sandbox Code Playgroud)

在"使用"语句之后,这本身就是一条线.

这个命令做什么用的?

Sto*_*ica 5

来自perldoc perlvar:

$|

如果设置为非零,则在当前所选输出通道上的每次写入或打印后立即强制刷新.默认值为0(无论系统是否真正缓冲了通道; $|仅告诉您在每次写入后是否明确要求Perl进行刷新).STDOUT如果输出到终端,则通常将行缓冲,否则阻塞.设置此变量主要在输出到管道或套接字时很有用,例如在rsh下运行Perl程序并希望在输出时看到输出.这对输入缓冲没有影响.请参阅getc.请参阅有关如何选择输出通道的选择.另见IO::Handle.

因此,当它始终开始时0,它会将其递增1,在每次写入/打印后强制刷新.

您可以用以下内容替换它以使其更清晰.

use English '-no_match_vars';
$OUTPUT_AUTOFLUSH = 1;
Run Code Online (Sandbox Code Playgroud)

  • 啧啧啧.如果你'使用英语',*总是*`使用英语'-no_match_vars'`,否则你将产生正则表达式性能惩罚(参见[英语`docs](https://metacpan.org/pod/English#PERFORMANCE )作为解释). (2认同)