SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【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系まで下げることでも回避できるでしょう。

関連するメモ

コメント