[완료]cgi에서 perl을 이용하여 유니코드 변환시...
cgi에서 메일 보내는 프로그램을 작성중에 있습니다.
제가 만드는건 아니구요... 아는 분이 다국어(일본어 한국어 중국어 ) 메일을 보낼수 있게 유니코드 변환 소스좀 추가
해주라고 해서 KLDP에서 검색한 소스를 추가 하였는데 에러가 발생합니다.
추가한 코드는 아래와 같습니다.
sub convert_encode {
my ($str, $from, $to) = @_;
eval { require Encode; };
unless($@) {
$str = Encode::encode($to, Encode::decode($from, $str));
} else {
eval { require Text::Iconv; };
unless($@) {
my $converter = Text::Iconv->new($from, $to);
$str = $converter->convert($str);
}
}
return $str;
}
실행시 에러는
CGI エラーエラーメッセージ:
Can't locate Encode/ConfigLocal.pm in @INC (@INC contains:/usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0/usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl/usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi/usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl/usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 .) at/usr/lib/perl5/5.8.0/i386-linux-thread-multi/Encode.pm line 52.
-----------------------------------------------------------------
CGI エラーエラーメッセージ:Can't call method "_eval" without a package or object reference at/home/npgo_group/gci/web/cgi-bin/request/jp/mail.cgi line 109.
-----------------------------------------------------------------
입니다.
제가 펄은 완전 초보라 에러 해석도 안되고 있네요.
모듈 선언이 안된듯도 하고.. 사용법이 틀린듯도 하고...
도움 부탁드립니다.
Encode 모듈이 제대로 설치되지 않았나 보네요.
에러메시지는 Encode모듈이 필요한 모듈 파일을 찾지 못해서 발생한 것으로 보입니다.
perl -e 'use Encode'
라고 명령을 내려서 에러메시지가 뜨면 제대로 설치되지 않은겁니다.
그리고 Perl에서 인코딩 변환및 처리는 Encode 모듈로 충분합니다.
Encode모듈은 Perl배포시 기본으로 포함되는 Core모듈이기도 하고요
굳이 Text::Iconv모듈을 사용할 필요가 없죠..
그런데 다국어 메일이라면 그냥 유니코드를 지원하는 utf-8을 기준으로 하면
인코딩 변환도 필요 없을듯 하네요.
해결
지적해주신 대로 수정하니 에러 없이 실행 되는군요.
감사합니다.
댓글 달기