No.5201
先月に公開した Ver 4.6.0 正式版の配布ZIPの中身も、古いPerl対応版に差し替えました。
No.5189に書いた通り、お使いのサーバにインストールされているPerlのバージョンが古い場合(Perl 5.10未満の場合)に限って、てがろぐCGIを Ver 4.6.0 にバージョンアップすると「500 Internal Server Error」になってしまう問題がありました。(※正確には Ver 4.5.3β~4.6.1βのバージョンで発生していました。)
Perlのバージョンを 5.10.x 以上にすることで正常稼働するようになりますが、他に稼働させているCGIの都合等でPerlのバージョンを上げられない場合のために、Perl 5.10未満でも正常稼働するよう修正しましたので、先程 Ver 4.6.0 のZIPも差し替えました。
先月から本日までの間に、TegUp等を使ってバージョンアップした結果「500 Internal Server Error」が出たのでバージョンダウンした、という方は、再度TegUp等でバージョンアップしてみて下さい。今は問題なくバージョンアップできるハズです。
※注意:既に Ver 4.6.x がエラーなく動作している方々は、何もする必要はありません。(差し替えたZIPに収録しているファイルは、問題箇所を書き換えただけで、機能面ではまったく同じですので。)
No.5189に書いた通り、お使いのサーバにインストールされているPerlのバージョンが古い場合(Perl 5.10未満の場合)に限って、てがろぐCGIを Ver 4.6.0 にバージョンアップすると「500 Internal Server Error」になってしまう問題がありました。(※正確には Ver 4.5.3β~4.6.1βのバージョンで発生していました。)
Perlのバージョンを 5.10.x 以上にすることで正常稼働するようになりますが、他に稼働させているCGIの都合等でPerlのバージョンを上げられない場合のために、Perl 5.10未満でも正常稼働するよう修正しましたので、先程 Ver 4.6.0 のZIPも差し替えました。
先月から本日までの間に、TegUp等を使ってバージョンアップした結果「500 Internal Server Error」が出たのでバージョンダウンした、という方は、再度TegUp等でバージョンアップしてみて下さい。今は問題なくバージョンアップできるハズです。
※注意:既に Ver 4.6.x がエラーなく動作している方々は、何もする必要はありません。(差し替えたZIPに収録しているファイルは、問題箇所を書き換えただけで、機能面ではまったく同じですので。)
具体的な原因と対処の余談
具体的には、$value = Ⓐ // Ⓑ;という記述で「ⒶがundefだったらⒷを代入する」という意味になる『defined-or演算子』が Perl 5.10 から導入された書き方だったために、Perl 5.10未満ではエラーになっていたのでした。この書き方を使っていたのは1箇所だけでしたので、そこを $value = defined Ⓐ ? Ⓐ : Ⓑ のような、以前から使用可能な書き方に改めただけです。