我需要禁用HTTP响应的渐进式缓冲。
我使用一个文件句柄类在Perl中实现了这一点:
$|=1;
$TIE = tie(*STDOUT,__PACKAGE__);打印语句存储在数组中,并通过以下方式进行检索:
$buffer = tied *STDOUT;
$buffer = join('', @$buffer);
undef $TIE;
untie(*STDOUT);如果HTTP响应为text/html,则会在浏览器中正确显示。
但是,对于二进制流,我不能在STDOUT上设置解绑后的binmode,并且内容已损坏。
如果我将HTTP响应保存到文件,或者如果我不使用文件句柄类,则会保留二进制数据。
关于如何强制raw编码有什么建议吗?谢谢。
发布于 2012-06-01 15:17:03
像这样的东西可以工作吗?
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";https://stackoverflow.com/questions/10845787
复制相似问题