2004年11月29日月曜日

Amazonウェブサービスで遊んでみました。

今週末はAmazonウェブサービスをいじってました。それでできたのがこれです。
hori-uchi.com: AWS Keyword Search
SledgeとNet::Amazonを使って作り、mod_perlで動かしています。単純な検索アプリです。ちなみに検索結果のリンクには僕のアフィリエイトIDが入ってますのでここから買ってもらえると僕がすこししあわせになりれます(笑)。

それにしてもNet::Amazon便利すぎです。RESTでどうこうとかXMLがなんたらとか全く意識しないでAmazonウェブサービスを利用できちゃいます。この部分の実装はほんとに一瞬でできてしまいました。

しかーし、Net::Amazonのおかげでこのまま順調にいくかと思いきや、別のところではまってしまいました。。
CGI環境で動かすと問題ないんですが、mod_perlにすると、以下のようなエラーがたまにでてしまうんです。

>

Use of uninitialized value in subroutine entry at /usr/local/lib/perl5/site_perl/5.8.5/Log/Log4perl.pm line 122.
[Sun Nov 28 20:37:21 2004] [error] Undefined subroutine &main:: called at /usr/local/lib/perl5/site_perl/5.8.5/Log/Log4perl.
pm line 122.\n
<

結構悩みましたが、Log::Log4perlをuseする時点でたまにエラーがでているようなので、apacheの起動時にuseするようにしたところ、エラーがでなくなりました。でも原因がよくわからないのがちょっと気持ち悪いです。だれかおしえてー。


2 件のコメント:

  1. http://search.cpan.org/~mschilli/Log-Log4perl-0.49/lib/Log/Log4perl.pm#Initialize_once_and_only_once
    もしかしたらこのあたりが参考になるんじゃないでしょうか。

    返信削除
  2. まかまかさん初めまして。
    貴重な情報ありがとうございます!
    なるほど、mod_perlを使うときはApacheのスタートアップ時に初期化すべきなんですね。

    返信削除