Perlアップデートとjacode.pl
前のページ 次のページ
perlのバージョンが新しくなったらCGIが動かなくなったという書き込みがサポート掲示板にあった。- CGI/マルチアップローダ
- CGI/疑似偏差値計算機
- CGI/詳細予定表
- CGI/長期予定表
- CGIの利用について
- Perlアップデートとjacode.pl
- パスワードの暗号化についての覚書
- マルチアップローダのベーシック認証
- マルチアップローダ設置
Perl5.24ということだが、ローカルでCGIのテストに使っているXamppは最新版でもPerlのバージョンはは5.16なので、5.24での動作が確認できない。
Perlを5.24にアップデート
単体ではWindows用ActivePerlの5.24が公開されている。Xamppの環境でこのActivePerlが使えるのかわからないが、取りあえずインストールしてみる。
XamppでPerlがインストールされているC:\xampp\perlに直接インストールしたいところだが、ダウンロードしたActivePerlのインストーラーはインストール先を変更できないようだ(それとも見落としたか?)
また、64bit版のインストーラーを使ったので、C:\Perl64というフォルダにインストールされてしまう。
取りあえずこれをXamppでインストールされたC:\xampp\perlフォルダにコピーすることにする。C:\xampp\perlは別名に変更してバックアップしておき、C:\Perl64の中身をすべてC:\xampp\perlにコピーしてみた。
これだけでうまくいくはずないよなと思ってCGIを実行してみると、あっさりと動いてしまって拍子抜けした。
print $];でPerlのバージョンを確認してみると、無事
5.024001と表示され、5.24にアップデートできたことが確認できた。
jcode.plのエラー
Perlをバージョン5.24にアップデートできたので、エラーが出るというCGIを実行してみると確かにエラーが出て実行できない。エラーログを見てみるとjcode.plで
Can't use 'defined(%hash)'というようなエラーが出ているようだ。確かにこの日本語変換ライブラリのjcode.plはかなり昔に書かれたものなので、最新のPerlで動かなくなっても不思議ではないかもしれない。Kent-Webなどで公開されているCGIを見てみるとjcode.plの後継ライブラリというjacode.plが使われているようだ。
jacode.plに更新
CPAN http://search.cpan.org/~ina/jacode/で最新版が公開されているようなので、ダウンロードする。このうちjacode.plをjcode.plに置き換えればいいようだ。jcode.plを使っていたCGIでは
require './lib/jcode.pl'というようなjcode.plを読み込んでいる部分を
require './lib/jacode.pl'に変更する。
そのまま互換性があるのかよくわからないが、とりあえずエラーは出なくなった。
調べてみると同じ原因でエラーが出るCGIがけっこうあったので、すべて更新する必要があるようだ。
counter:6,427