我需要使用perl CGI应用程序在浏览器上打印文本,我需要打印的文件大小可以为30-100MB或更大。 我有下面的代码使用Perl打印大文件CGI
$lns=$_[0];
open(my $fh, '<:encoding(UTF-8)', $lns) or die "Could not open file '$lns' $!";
while (my $l = <$fh>) {
chomp $l;
print "<br>$l";
}
效果很好,但它的速度很慢显示大的文件,30 MB的文件占用15分钟。 有没有办法加快速度? 为了澄清,文件开始立即显示,但浏览器继续加载并显示10 - 15分钟的新行,为30 - 40 MB文件。 该文件是静态的并且未被修改。
输入文件是固定的文本文件,它不会改变,也不会被
因此修改后,你应该做的从转换:
你能解释它在哪里慢吗?您可以使用'$ | = 1'关闭缓冲区,然后浏览器前面的用户至少可以看到更多东西。但是这不会让它变得更快。 – simbabque
在浏览器上打印行,显示整个文件30 MB需要15分钟或更多。基本上浏览器不断加载新行几分钟。只是想知道是否有办法加快这个过程,或者唯一的办法是将文件分成多个页面或类似的文件(我希望避免) – Cris
文本是否真正动态? –