Perl では Unicode のファイルを読み込んでも自動的にBOMを削ってくれない。過去に自分でも削ってくれるプログラムも書いた。 (「Perl 5.8.x で BOM を扱う」を参照) 最近、File::BOM というモジュールをCPANで発見した。いつのまにか、ActiveState のPPMのサイトにもアップロードされていた(つまり、バンドルされていないが、CPAN File::BOM で ActivePerl 5.10.0なら ppm install File::BOM とかでインストールできるということ)。 何通りかの使い方がある。ファイルを読み込んだとき、Encoding を知りたいのであれば、bom_open 関数が使える。 ちなみにこんな感じになる。 use utf8; use open ":encoding(cp932)",":std"; use File::BOM