PerlでUTF-8のファイルを開くときはBOM無しにした方がよい
use strict; use warnings; use utf8; use encoding 'UTF-8'; use open ':utf8'; binmode STDIN, ":utf8"; binmode STDOUT, ":utf8"; 中略 open my $FH, "<:utf8" , 以下略(ファイル名) while (readline $FH){ chomp; @temp = split(/,/,$_); print $temp[0];
という風にしたら、
?あああ
と言う風に?が出ちゃいます。最初分からなかったのですが、?の正体はBOMみたいです。
Perl 5.8.x 以降で BOM を操作するモジュール ハードなソフトの話/ウェブリブログを見ると、BOMを取り除くモジュールがあるようですが、面倒なので最初からBOMなしのファイルを使った方が良さそうです。