Encode::Guess - search.cpan.org
最近のperl (今回はver.5.26)では、「use utf8;」と内部のencodingが不整合の場合、 warningでなく、erorと扱うよううになった気がします。
なので、次のようなscriptを書いてみました。
#!/usr/local/bin/perl use strict; use warnings; use Encode::Guess qw/cp932 utf8/; # 優先度順に記載 use Data::Dumper; main(@ARGV); sub main { my ($file) = @_; open my $fh, '<:raw', $file or die "fail open $file $!"; $/ = undef; my $file_content = <$fh>; close($fh) or die "fail open $file $!"; my $enc = Encode::Guess::guess_encoding($file_content); print $enc->name,"\t$file\n"; }