私は自分のプログラムを12台のWindowsマシン、6台の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