BOMは7種類あるようです。
http://www.atmarkit.co.jp/fxml/rensai/w3cread37/w3cread37_3.html
こんな感じでどうでしょう?
#!/usr/local/bin/perl
@bom = (
chr(0x00).chr(0x00).chr(0xFE).chr(0xFF),
chr(0xFF).chr(0xFE).chr(0x00).chr(0x00),
chr(0x00).chr(0x00).chr(0xFF).chr(0xFE),
chr(0xFE).chr(0xFF).chr(0x00).chr(0x00),
chr(0xFE).chr(0xFF),
chr(0xFF).chr(0xFE),
chr(0xEF).chr(0xBB).chr(0xBF)
);
#// カレントフォルダオープン
opendir(DIR, './') or die;
@files = sort readdir(DIR);
closedir(DIR);
foreach (@files) {
if(-f $_){
open(FILE, $_) or die;
$dat = <FILE>;
for(my $i = 0; $i <= $#bom; $i++){
if(index($dat, $bom[$i]) == 0){
print "$_\n";
last;
}
}
close(FILE);
}
}
#見やすいように、全角スペースが入ってますので、TABなどに置換してから実行してください。
お礼
ありがとうございます!うまく抽出することができました。