管理人Kのひとりごと

デジモノレビューやプログラミングや写真など

Jcode.pmで...

perlを使ったCGIで、Jcode.pmが必要になったんです。開発機のmacには入っておらず、CPAN経由でDL&インストール。んで、早速簡単なスクリプトを書いたんですが、500エラー..."use Jcode;"だけでですよ!?
もしかして、インストールをマズったかなーと思い、削除→再インストールしてもダメ。CPAN経由をやめ、ソースからやってもダメ..."perl hoge.cgi"だとコマンドライン上にダラダラと表示されるのに、Webサーバ経由だとダメなのはなぜ...??
500エラーだとどうしていいのかわからないので、CGI実行時でもエラーをブラウザに出してもらえるように一工夫。ありがとう、Google先生

use CGI::Carp qw(fatalsToBrowser);

そしたらば、5.10.0の@INCにJcode.pmは見つからなかったよ(みたいな感じ)と出た。...?? "perl -v"でコマンドラインにでるのは5.8.9だったはず。そもそも、Jcode.pmは"/opt/local/lib/perl5/site_perl/5.8.9/"に入っていて、v5.8.9で実行されてるんだと思ってたんだよなぁ。
こうなってしまえば少々無理やりだけど、

use lib "/opt/local/lib/perl5/site_perl/5.8.9/";
use Jcode;

で切り抜けました。もちろん、本番環境では上の行は消しますけども...
CGI実行環境はv5.10.0、コマンドラインではv5.8.9とバージョンが違うだなんて知らなかった。
CGI書くときは

use CGI::Carp qw(fatalsToBrowser);

必須ですね