我需要禁用 HTTP 响应的渐进式缓冲。
我已经使用文件句柄类在 Perl 中进行了这项工作:
$|=1;
$TIE = tie(*STDOUT,__PACKAGE__);
打印语句存储在一个数组中,并通过以下方式检索:
$buffer = tied *STDOUT;
$buffer = join('', @$buffer);
undef $TIE;
untie(*STDOUT);
如果 HTTP 响应为text/html
,则它会正确显示在浏览器中。
但是,对于二进制流,解开后我无法设置binmode
,STDOUT
并且内容已损坏。
如果我将 HTTP 响应保存到文件,或者我不使用文件句柄类,则二进制数据会被保留。
关于如何强制原始编码的任何建议?谢谢。