Weak references are not implemented in the version of perlが出た

朝起きるとApacheが死んでいて、なんだろうと思ってログをみると再起動がうながされて起動しようとしたらPerlのモジュール読込できずに死んでしまったようです。以下のログにもあるようにPerlのバージョンは5.8.8です。

[Sun Jul 06 04:02:45 2008] [notice] SIGHUP received. Attempting to restart
[Sun Jul 06 04:02:48 2008] [error] Weak references are not implemented in the version of perl at /usr/lib/perl5/site_perl/5.8.8/Catalyst.pm line 24\nBEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Catalyst.pm line 24.\nCompilation failed in require at /var/www/MyApp/lib/MyApp.pm line 16.\nBEGIN failed--compilation aborted at /var/www/MyApp/lib/MyApp.pm line 16.\nCompilation failed in require at (eval 2) line 3.\n
[Sun Jul 06 04:02:48 2008] [error] Can't load Perl module MyApp for server appserver:0, exiting...


一応、手動で起動しようとしてみましたが、当然同じ事象が繰り返されるだけ。

初めてあたったのですが、よくある事象のようでぐぐるとすぐに出てきます。


http://unknownplace.org/memo/2006/06/26#e004
http://d.hatena.ne.jp/holidays-l/20060906/p1
http://d.hatena.ne.jp/fjkktkys/20071012/1192200838
http://blog.livedoor.jp/lax34volvic/archives/636433.html


上記のリンク先にもあるように、Scalar::Utilの再インストールでとりあえず対処はできました。

sudo rm -f `perldoc -l Scalar::Util`
sudo cpan
cpan>install Scalar::Util


事象の解釈としては、Perlの自動更新が入ってApacheに再起動のシグナルが送られたっていうことでいいのかな。