Plaggerをインストールした

Plaggerをさくらのレンタルサーバ上にインストールした。かなり簡単に出来たと思ったが、Plagger::Pulugin::Publish::Gmailを使い、feedをGmailに送信させようすると、次のエラーが出て、送信されない。

Plagger::Plugin [fatal] undef error - Cannot compare a datetime to a regular scalar at /home/ykzts/local/lib/perl5/site_perl/5.8.8/Template/Stash.pm line 386 at line 144

FAQに似たような事例への対処法が書かれていたので、記載に従い、Template-ToolkitをXS Stash optionを有効にし、インストールし直した。だが、それでも同様のエラーが出る。しばらく悩んでいたのだが、ふと思い立ち、find ~/local/lib/perl5 -name "*.so"としてみたところ、何れも何れも、*.pmとは別のディレクトリに置かれている。……Rubyと同じような形式のようで。最近、頻りに扱っていたPythonは、そうではなかったので、全く念頭になかった。export PERL5LIB=${HOME}/local/lib/perl5/site_perl/5.8.8/mach:${PERL5LIB}とし、再びPlaggerを実行させてみたところ、上手くいった。

解決に要した時間が半日超だったのが、笑えない。

拡張子がsoとなっているファイルだけが特別扱いされ、machディレクトリに収められているという訣ではなく、拡張子がpmのファイルも一緒に、machディレクトリに収められていた。どのようなファイルが収められ、収められないのかの規則は解らない。後で調べようかと思う。又、拡張子がsoのファイルは、machの中に、収められているには収められていたが、さらに下の階層の、mach/autoディレクトリに収められていた。そこは、@INCには含まれていない筈なのだが、何故か問題はなかった。不思議だ。

だがしかし、環境変数PERL5LIBに${HOME}/local/lib/perl5/site_perl/5.8.8/mach:${HOME}/local/lib/perl5/site_perl/5.8.8を入れておけば解決出来るので良しとしよう。

2007-03-09T01:38:03+09:00