dポイントプレゼントキャンペーン実施中!

perl初心者でまた質問させていただきます。
CGIを作っているのですが、R.PMが使えなくて困っています。

USE R;
とすると、以下のようなエラーが出てしまいます。
Can't locate R.pm in @INC (@INC contains: /usr/lib/perl5/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/5.10.0 /usr/lib/perl5/site_perl/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.10.0 /usr/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.10.0 /usr/lib/perl5/vendor_perl .) at /srv/www/htdocs/cgi/ringo.cgi line 5.
BEGIN failed--compilation aborted at /srv/www/htdocs/cgi/ringo.cgi line 5.
Premature end of script headers: ringo.cgi

そこで、
locate R.pm
で、場所を探しました。

/usr/lib/perl5/5.10.0/x86_64-linux-thread-multi/R.pm
ということで、
use R '/usr/lib/perl5/5.10.0/x86_64-linux-thread-multi/';
このように変えてみたものの、同じエラーです。ちなみに、CGIではなく、PERLのプログラムからだと、use R;で動作することは確認しました。

よろしくお願いします。

A 回答 (2件)

BEGIN {


push(@INC, '/usr/lib/perl5/5.10.0/x86_64-linux-thread-multi/');
}
use R.pm;
でもだめ?
 ひょっとしてCGIとローカルテスト?で位置が違う??
telnetで接続して、
locate  find
では??

この回答への補足

さっそくご回答ありがとうございます。
ためしてみたところ、このようなエラーが出ました。
Premature end of script headers: ringo.cgi
syntax error at /srv/www/htdocs/cgi/ringo.cgi line 9, near "use R."
Execution of /srv/www/htdocs/cgi/ringo.cgi aborted due to compilation errors.

また、locate findをするとものすごい数の結果がでてきました。
...,

じつは、上に書きそこねたのですが、R.pm ローカルと二つあったようです。
locate R.pm
/disk_1/people/sys/R/RSPerl/src/R.pm.in
/usr/lib/perl5/5.10.0/x86_64-linux-thread-multi/Encode/KR.pm
/usr/lib/perl5/5.10.0/x86_64-linux-thread-multi/Encode/KR/2022_KR.pm
/usr/lib/perl5/5.10.0/x86_64-linux-thread-multi/R.pm
/usr/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/APR.pm
/usr/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/Net/DNS/RR.pm
/usr/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/Net/DNS/RR/MR.pm
/usr/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/Net/DNS/RR/NAPTR.pm
/usr/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi/Net/DNS/RR/PTR.pm
/usr/local/lib64/R/library/RSPerl/perl/x86_64-linux-thread-multi/R.pm
/usr/share/YaST2/modules/YSR.pm

perl -e 'print "@INC";'
/usr/local/lib64/R/library/RSPerl/perl/x86_64-linux-thread-multi
/usr/local/lib64/R/library/RSPerl/perl
/usr/lib/perl5/5.10.0/x86_64-linux-thread-multi
/usr/lib/perl5/5.10.0 /usr/lib/perl5/site_perl/5.10.0/x86_64-linux-thread-multi
/usr/lib/perl5/site_perl/5.10.0 /usr/lib/perl5/vendor_perl/5.10.0/x86_64-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.10.0
/usr/lib/perl5/vendor_perl .z111
ただあまり、理解しておらずどうしていいのか分からない状況です。

宜しくお願いします。

補足日時:2009/11/25 19:55
    • good
    • 0
この回答へのお礼

インストールしなおしたところ、うまくうごくようになりました。何が悪かったのかよくわかりませんが。
ありがとうございました。

お礼日時:2009/11/26 21:16

use lib qw(/usr/lib/perl5/5.10.0/x86_64-linux-thread-multi);


use R;
でどうかな
    • good
    • 0
この回答へのお礼

再インストールすると動きました。ありがとうございました。ちなみに、再インストールするまえに,教えていただいたコードを、ためしたみたのですが,エラーは変わりませんでした。

お礼日時:2009/11/26 21:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!