Apache输出刷新配置

Apache输出刷新配置,apache,perl,output,flush,Apache,Perl,Output,Flush,我在两台不同的服务器(Centos和Debian)上使用了以下perl脚本,这两台服务器都运行Apache web server: $|++; print "Content-type: text/plain\n\n"; for ($i=1; $i<=10;$i++) { print "$i\n"; sleep(1); } print "Done.\n"; $|++; 打印“内容类型:文本/纯文本\n\n”; 为了($i=1;$i刷新输出,我必须禁用varnish和mod

我在两台不同的服务器(Centos和Debian)上使用了以下perl脚本,这两台服务器都运行Apache web server:

$|++;
print "Content-type: text/plain\n\n";

for ($i=1; $i<=10;$i++) {
    print "$i\n";
    sleep(1);
}
print "Done.\n";
$|++;
打印“内容类型:文本/纯文本\n\n”;

为了($i=1;$i刷新输出,我必须禁用varnish和mod_deflate

谢谢你帮助我


cl.

尝试使用
select->autoflush(1)
,而不是依赖以前设置的神奇值。@choroba,这是一个风格建议吗?因为这不会产生任何功能上的差异。(如果你想避免
$|+;
的神奇,你只需要
$|=1;
。显然,
select->autoflush(1)
虽然更清楚,但成本要高得多,因为它涉及三次调用
选择
和两次分配给
$
)Re“有没有办法配置apache”,我确认造成这种情况的原因与Perl中的不同。请注意
使用IO::Handle()在5.8.8中,
是可以作为句柄上的方法调用的
autoflush
所必需的。我的首选是
\*STDOUT->autoflush(1);
只要您知道您正在处理STDOUT,但您是对的,它不应该造成功能上的差异。选择->autoflush(1);或*STDOUT->autoflush(1);没有效果;我认为这是一个apache设置,与perl没有区别。