1.Can't locate auto/Apache2/Request/param.al @INC
というエラーが以下のコードでおこります。
考えられる原因を教えて下さい。
use Apache2::RequestRec ();
use Apache2::RequestIO ();
use Apache2::Request;
…
sub handler {
my $r = shift;
my $gr = $r;
my $cgi = Apache2::Request->new($r);
…
my $api = $cgi->param('api');
↑この行
2.Can't locate auto/Apache2/Cookie/Jar/jar.al in @INC
というエラーが以下のコードでおこります。
考えられる原因を教えて下さい。
use Apache2::Cookie ();
…
sub handler {
my $r = shift;
my $gr = $r;
(別sub)
my $j = Apache2::Cookie::Jar->new($gr);
↑この行
(現在の環境)
Apache 2.2.2
libapreq2 2.0.7
mod_perl 2.0.2
XSBuilder 0.28
Fedora Core 5
libapreq2のコンフィギュア
./configure --with-apache2-apxs=/usr/local/apache2/bin/apxs
--enable-perl-glue --with-expat=/usr/local/apache2
httpd.confにて
LoadModule modules/libapreq2.so
をしており、エラーはでていません。
以上、宜しくお願い致します。
can't locate ***** @INC というエラーは、mod_perl の perl モジュールが標準の位置にない、という内容になります。
perl -V で @INC として出てくるディレクトリの下に param.al なり jar.al という
ファイルがあるかどうか、ない場合は、@INC 以外の場所にあるのかどうかを確認してみるのが良いでしょう。
もし、@INC 以下にないけどそれ以外に場所にある、という場合、例えば /path/to/perl/lib/auto/Apache2/Request/param.al が存在する場合、
use lib '/path/to/perl/lib';
などを perl スクリプトに追加すれば解決するかもしれません。
状況を見る限り、たしかに存在しないファイル名(というか、自身で書かれたコードに由来したファイル名)のファイルを探しに行っているように見えますね。
1. でいうと、Apache2::Request のモジュールの使い方が正しくないか、モジュール自体が正しく動作していない可能性が高そうなのですが・・。
なるほど、ありがとうございます。もう少し頑張ってみてみます!
もし何か情報があれば、お待ちしています!
ありがとうございます!!
探してみたのですが、
まず端末内のparam.al や jar.alを検索してみたのですがないんです。
libapreq2を再インストールしても作成されませんでした。
(googleでみてみてもそのファイル名の検索がヒットしなかったのです…)
もしや、元々ないものなのでは?と疑っています。
まだ解決していないので、引き続きアドバイスを宜しくお願い致します。