大佬教程收集整理的这篇文章主要介绍了windows – 简单的Win32 :: Unicode :: File readline循环和Strawberry Perl的“Out of memory”,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
#!/usr/bin/perl -w use Strict; use warnings; use Win32::Unicode::File; use Encode; my $fname = shift @ARGV; my $fh = Win32::Unicode::File->new; if ($fh->open('<',$fName)){ while (my $line = $fh->readline()){} close $fh; }else{ print "Couldn't open file: $!\n"; }
这里唯一发生的事情就是我执行了一条读取线,并且这一直在记忆,直到我从StrawBerry perl中得到一个内存不足的错误.我使用的是一个非常大的文件,但由于此代码是基于流的,因此无关紧要.我在这里遗漏了什么,或者在草莓perl的某个地方有泄漏吗?我在ActivePerl中测试了完全相同的代码,并且工作正常,即它不会占用内存.
更新:用普通的菱形运算符替换Win32 :: Unicode :: File似乎至少可以在我的发行版上工作.请参阅以下代码.
use Strict; use warnings; my $fname = shift @ARGV; if (open(my $fh,'<',$fName)){ while (my $line = <$fh>){} close $fh; }else{ print "Couldn't open file: $!\n";}
那么这就表明问题出在Win32 :: Unicode模块上吗?
在读取或读取线期间,模块使用这两个变量.
BTW:它太慢了,因为它使用3个函数调用一次读取每行一个字符,然后为每个读取字符调用Encode :: decode,然后将其添加到readline返回到代码的行缓冲区.呸!
以上是大佬教程为你收集整理的windows – 简单的Win32 :: Unicode :: File readline循环和Strawberry Perl的“Out of memory”全部内容,希望文章能够帮你解决windows – 简单的Win32 :: Unicode :: File readline循环和Strawberry Perl的“Out of memory”所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。