gpt4 book ai didi

perl - 在 Perl 中关闭打印缓冲区的神奇标点符号 "$|"的替代方法是什么?

转载 作者:行者123 更新时间:2023-12-01 06:45:12 24 4
gpt4 key购买 nike

我正在重构一些旧代码(由其他人),我在一些 CGI 脚本的顶部遇到了以下内容:

#Turn on output buffering
local $| = 1;

perlcritic 像往常一样无益地指出了明显的:“使用了魔法标点符号”。是否有任何替代方案或 perlcritic 只是脾气暴躁?

此外,在仔细检查。我认为代码是错误的。

如果我没记错的话,这与评论所说的完全相反。它变成了 关闭 输出缓冲。我的内存有点生疏,我似乎找不到描述这个神奇标点符号的 Perl 文档。脚本在 mod_perl 中运行。

搞乱 Perl 的缓冲行为是否可取并导致任何性能提升?大部分关于此的文章都来自 21 世纪头十年的早期。这仍然是一个有效的好习惯吗?

最佳答案

$|是许多真正每个文件句柄的标点符号变量之一。该变量获取或设置当前选择的输出文件句柄的值(默认为 STDOUT)。 ($. 略有不同;它绑定(bind)到最后读取的文件句柄。)

访问这些的“现代”方法是通过文件句柄上的方法:

use IO::Handle;
$fh->autoflush(1); # instead of $|=1

每个变量对应的方法记录在 perldoc perlvar .

关于perl - 在 Perl 中关闭打印缓冲区的神奇标点符号 "$|"的替代方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6567810/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com