何回か前にも、私のこのHPに簡単なコメント機能を追加する試行錯誤中。一応出来たつもりなんだが、少しずつ修正していると突然エラーで実行が失敗することがある。
若干の表示エラーとかなら対処の仕方も簡単だが、いわゆる "500 Internal server error" が表示されてしまうと打つ手がない。Localでテストしてアップしているので、構文間違いはない(と思い込んでいる)。しかも小変更前までは問題なく実行できていたりするともうお手上げ状態。
=pod =cut で複数行をカットしてみて実行できるか? とか四苦八苦する。
しかし最近非常に強力なツールを見つけた。「
Kawa.netxp [Perl] KCatch.pm/CGI エラーメッセージをブラウザに表示」と言うツール。そのページの説明にある通り、 ダウンロードして展開して出来る「KCatch.pm」と言うスクリプトを同じフォルダーに置いてターゲットのcgiを実行すると、エラーや警告が表示される。サーバーによっては perl実行エラーログが公開されていないので非常に助かる。
但し、perl 5.30以降では 内蔵以外のライブラリのパスに同じフォルダが含まれないようで使用説明中の
use KCatch; は use lib './KCatch'; などとパスを加えないと
Can't locate KCatch.pm in @INC などというエラーになってしまう。
今回の騒動は、require で指定した モジュールを変更したのにそれを再アップロードするのを忘れていた。Localでは変更済みなのでエラーが出ずに Webサーバーでだけエラーになる現象も納得・・・・と言うか情けない。改めて公開先に感謝!