【Perl】Can’t use ‘defined(%hash)’ エラー
問題
perlの古いCGIのプログラムを新しいサーバーに移転したらエラーになりました。
Can't use 'defined(%hash)' (Maybe you should just omit the defined()?) at ./jcode.pl line 689
答え
以下のようになっている個所を
&init_z2h_euc unless defined %z2h_euc;
以下のように変更するとエラーは出なくなる
&init_z2h_euc unless %z2h_euc;
defined を削除するだけ。(just omit the defined())
jcode.pl の場合、2か所あるのでどちらも対応する。
Perlのバージョンアップで仕様が変わったためのようです。
なお、移転先がさくらのレンタルサーバーなどの場合、Perlのバージョンの指定が可能なので、5.8系まで下げることでも回避できるでしょう。
コメント