use Encode;
use Encode::Guess qw/ gbk euc-jp shiftjis/;
opendir (DIR, '.');
@files = readdir DIR;
foreach $dir(@files)
{
print $dir;

open (IN, "<$dir");
open (OUT, ">$dir-2");
while (<IN>)
{
Encode::from_to($_, 'guess', 'Shiftjis');
print OUT;
}
close IN;
close OUT;
}
opendir (DIR, '.');
@files = readdir DIR;
foreach $_(@files)
{
$old = $_;
s/-2//;
rename ($old,$_);
}
初心者なもので無駄が多すぎてお恥ずかしいのですが。。。
フォルダ内にあるテキストファイルの文字コード(EUC・Shiftjis・BGなどバラバラ)を自動判別して全てshiftjisに変換したいのですが
shiftjis or euc-jp or cp936 at C:/Perl/lib/Encode.pm line 186 とエラーがでます。
'guess'の部分を''gbk'とかに指定すればちゃんと変換されるのですが、それだと他コードのファイルが文字化けします。
どうすればいいでしょうか・・・?