我需要禁用HTTP响应的渐进式缓冲.
我使用文件句柄类在Perl中使用它:
$|=1; $TIE = tie(*STDOUT,__PACKAGE__);
Print语句存储在一个数组中,并通过以下方式检索:
$buffer = tied *STDOUT; $buffer = join('',@$buffer); undef $TIE; untie(*STDOUT);
如果HTTP响应是text / html,它会在浏览器中正确显示.
但是,对于二进制流,我无法在解开后在STDOUT上设置binmode,并且内容已损坏.
如果我将HTTP响应保存到文件,或者如果我不使用文件句柄类,则保留二进制数据.
有关如何强制原始编码的任何建议?谢谢.
解决方法
像这样的工作吗?
use strict; use warnings; use IO::Handle; my $io = IO::Handle->new; my $fh = $io->fdopen(fileno(STDOUT),"w"); $fh->autoflush(1); my $TIE = tie( $fh,__PACKAGE__); sub TIESCALAR { }; binmode($fh); print $fh "Foo";