【发布时间】:2012-06-01 07:00:20
【问题描述】:
我需要禁用 HTTP 响应的渐进式缓冲。
我已经在 Perl 中使用文件句柄类来实现这一点:
$|=1;
$TIE = tie(*STDOUT,__PACKAGE__);
打印语句存储在一个数组中,并通过以下方式检索:
$buffer = tied *STDOUT;
$buffer = join('', @$buffer);
undef $TIE;
untie(*STDOUT);
如果 HTTP 响应是 text/html,它会正确显示在浏览器中。
但是,对于二进制流,我无法在STDOUT解开后设置binmode,并且内容已损坏。
如果我将 HTTP 响应保存到文件中,或者如果我不使用文件句柄类,则会保留二进制数据。
关于如何强制进行原始编码的任何建议?谢谢。
【问题讨论】:
标签: perl stdout filehandle tie binmode