我已经在十几台 Windows 机器、六台 Mac 和一台 Linux 机器上测试了我的程序,它在 Windows 和 Linux 上都没有错误,但在 Mac 上却没有。我的程序设计用于处理蛋白质数据库文件,这些文件是 250MB 到 10GB 的文本文件。我取了 250MB 文件的 1/10 制作了一个示例文件用于调试目的,但发现较小的文件没有发生错误。
我已将错误范围缩小到这部分代码,在这部分$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 中 1 行的示例
>sp|P48255|ABCX_CYAPA Probable ATP-dependent transporter ycf16 OS=Cyanophora paradoxa GN=ycf16 PE=3 SV=1 MSTEKTKILEVKNLKAQVDGTEILKGVNLTINSGEIHAIMGPNGSGKSTFSKILAGHPAYQVTGGEILFKNKNLLELEPEERARAGVFLAFQYPIEIAGVSNIDFLRLAYNNRRKEEGLTELDPLTFYSIVKEKLNVVKMDPHFLNRNVNEGFSGGEKKRNEILQMALLNPSLAILDETDSGLDIDALRIVAEGVNQLSNKENSIILITHYQRLLDYIVPDYIHVMQNGRILKTGGAELAKELEIKGYDWLNELEMVKK CYAPA