我已经在十几台Windows机器,六台Mac机和一台Linux机器上测试了我的程序, Windows和Linux,但不是Mac。我的程序设计用于处理蛋白质数据库文件,这些文件的文本文件范围从250MB到10GB。为了调试目的,我花了250MB文件的1/10制作一个示例文件,但发现该小文件没有出现该错误。perl在Mac上有很大的IO错误,但不是Windows或Linux(增加了换行符不能被删除)
我已经缩小的bug来的这部分代码,在本节$tempFile
,是蛋白质数据库文件:
open(ps_file, "..".$slash."dataset".$slash.$tempFile)
or die "couldn't open $tempFile";
while(<ps_file>){
chomp;
my @curLine = split(/\t/, $_);
my $filter = 1;
if($taxon){
chomp($curLine[2]);
print "line2 ".$curLine[2].",\t".$taxR{$curLine[2]}."\n";
$filter = $taxR{$curLine[2]};
}
if($filter){
checkSeq(@curLine);
}
}
这是显示特殊字符的打印语句的输出的屏幕截图:
这是输出看起来像在Windows计算机上:
下面是从$ TEMPFILE
>sp|P48255|ABCX_CYAPA Probable ATP-dependent transporter ycf16 OS=Cyanophora paradoxa GN=ycf16 PE=3 SV=1 MSTEKTKILEVKNLKAQVDGTEILKGVNLTINSGEIHAIMGPNGSGKSTFSKILAGHPAYQVTGGEILFKNKNLLELEPEERARAGVFLAFQYPIEIAGVSNIDFLRLAYNNRRKEEGLTELDPLTFYSIVKEKLNVVKMDPHFLNRNVNEGFSGGEKKRNEILQMALLNPSLAILDETDSGLDIDALRIVAEGVNQLSNKENSIILITHYQRLLDYIVPDYIHVMQNGRILKTGGAELAKELEIKGYDWLNELEMVKK CYAPA
,与250MB的文件固定它 我打算现在10GB的文件进行测试,但将采取30分钟运行 谢谢非常 –