Perlのバイナリファイルでbinmodeを使用したい。では、手元のファイルがバイナリまたはテキストであることをどのように知ることができますか?
つまり、最初に完全なファイルを読み取って、それがバイナリであるかテキストであるかを確認し、次に、バイナリである場合はbinmodeを設定してFPを巻き戻します。
Perl -B / -Tはテキストの最初のブロックのみをチェックするため、通常はpdfをテキストファイルとして分類します(ソースコードは.gif、.pdfなどの拡張子に隠れている可能性があります)。したがって、完全なファイルデータを読み取って、バイナリファイルかテキストファイルかを判断する必要があります。
ソースコードファイル(.pl、.c、.phpなど)には、0x0-0x1fや0xff以降のような非表示の文字は含まれないと聞きました。
すべてのバイトがこの範囲内にあるかどうかをチェックして、それがソースコードファイルであるかどうかを宣言できますか?