• ベストアンサー

XML::Parser::Expat が無い?

RSSフィードを読むCGIを作りたいと考えています。 XML::RSSを入れると、 ・XML/Parser.pm ・XML/Parser/Expat.pm が無いというエラーになったので入れました。 が、今度は、 「Can't locate loadable object for module XML::Parser::Expat」 というエラーになりました。 「XML::Parser::Expat」は、Expat.pm内にあるのに何故でしょうか? ちなみにperl5.005で、pmは全てCPANから落としました。

  • Perl
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

No.1さんの回答のとおりかと想像します。 このモジュールはperlではなくXS(C言語)で書かれたコードも含むので、.pmを置くだけでは駄目でコンパイルが必要です。Can't locate loadable object が、まさにそのようなときにでるエラーです。 XML::Parser::Liteはpure perlだった気がするので、なんらかの理由でmakeできない場合はこちらを使うのも手です。

pinch-i
質問者

お礼

なるほど、そういう意味のエラーなんですね。 ありがとうございます。 試行錯誤でやっていたので、一度きれいにしてからやり直してみました。 すると、また別問題で止まっています。 別の質問として掲載します。 Liteの情報もありがとうございました。

その他の回答 (1)

  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.1

> エラーになったので入れました。 ちゃんと perl Makefile.PL make make test make install の手順でインストールしました? まさか~.pmを手動でコピーしたなんてことはないですよね?

pinch-i
質問者

補足

make testはやってません。。。 ちょっと出直します。

関連するQ&A

  • cpanからモジュールをインストール後

    お世話になります。 ネットで調べcpanからモジュールをインストールしました。 # su - # perl -MCPAN -e shell 最初の起動時に質問が出てきてリターンと少しの設定後、 cpan>install XML::RSS # find `perl -e 'print "@INC"'` -name 'RSS.pm' -print ./.cpan/build/XML-RSS-1.05/lib/RSS.pm ./.cpan/build/XML-RSS-1.05/blib/lib/XML/RSS.pm の形でインストールされているのを確認しました。 で、その後、perlのCGIの方で実行すると、 Can't locate XML/RSS.pm in @INC (@INC contains: ./mylib /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl .) at rss.cgi line 10. BEGIN failed--compilation aborted at rss.cgi line 10. になってしまうんですが、次はどうすればよいのでしょうか

    • ベストアンサー
    • Perl
  • Expat.soが読めない!?

    XML::Parser 2.34 をインストールしました。 rootになれないレンタルサーバーですので、 ユーザーディレクトリ配下にインストールしました。 エラーは出ていません。 が、使用時に、 use XML::Parser; の行で下記エラーになります。 Can't load '/usr/home/USERNAME/perl/lib/i386-freebsd/auto/XML/Parser/Expat/Expat.so' for module XML::Parser::Expat: Shared object "libexpat.so.6" not found, required by "Expat.so" at /usr/…/DynaLoader.pm line 169. at /usr/home/USERNAME/perl/lib/i386-freebsd/XML/Parser.pm line 14 「DynaLoader.pm」は、システムのperlライブラリを参照してるようです。 もちろん-Iオプションで、 インストールしたライブラリパスを指定しています。 インストールは下記要領で、Expat-2.0.0からインストールしました。 <Expatのインストール> > ./configure --prefix=/usr/home/USERNAME/perl/lib > make > make install <XML::Parserのインストール> > perl Makefile.PL LIB=/usr/home/USERNAME/perl/lib EXPATLIBPATH=/usr/home/USERNAME/perl/lib/lib EXPATINCPATH=/usr/home/USERNAME/perl/lib/include INSTALLMAN1DIR=/usr/home/USERNAME/perl/lib/man1/ INSTALLMAN3DIR=/usr/home/USERNAME/perl/lib/man3/ > make > make install 気になるのが、Expatのconfigure実行後のMakefileで、  ifndef INSTALL_ROOT  INSTALL_ROOT=$(DESTDIR)  endif この部分がmake時にエラーになるのでコメントアウトしたことです。 INSTALL_ROOTは、--prefixで指定したディレクトリの前に付けて 使用しているので、無くて問題ないと判断したのですが…。 Expatのインストールに問題がある。というのは何となく分かるのですが、 どうすれば良いのかが分かりません。m(__)m perl 5.003です。

  • XML::Parserの parsefileの結果はどんな値が正しいのでしょうか?

    PerlのXML::Parserモジュールで、Objectスタイルで パースをしようとしているのですが、 $docの値が1となり、パースの結果のデータ?は 帰ってこないのですが、何か問題があるのでしょうか? my $file = 'test.xml'; my $p = XML::Parser->new(Style=>'Object'); my $doc = $p->parsefile($file); print $doc; exit;

    • ベストアンサー
    • Perl
  • MacでCPANモジュール利用について

    プログラミング初心者です。うまくいかないので、ご教授願います。 Mac(Snow Leopard)でperlを学びたいと思い、 CPANモジュールをインストールしましたが、 いざ、XML::Feedを使用しようとすると、下記のエラーが出ます。 「Can't locate XML/Feed.pm in @INC ...........(続く)」 これはきちんとモジュールがインストールされていないことでしょうか? 考えられる可能性と回避方法を教えていただけないでしょうかm(_ _)m

    • ベストアンサー
    • Perl
  • XML::RSSモジュールインストールなしで使うのにローカルで使用可、サーバ上でエラー

    レンタルサーバを借りてサイトを運営しております。 このたび、RSSリーダを作ろうと思い、CPANからXML::RSSモジュールを落としてきました。 いろんなサイトを見まして、標準モジュールではないのでインストールが必要と書いてあり、落胆していましたが、 あるサイトに、 ./XML/RSS/というディレクトリを掘ってその中に格納すれば使える と書いてありましたので、 ローカル(Win32)でXML/RSSと2つフォルダを作り、 そのなかにRSS.pmをいれました。 すると使えません。 で、今度は、XMLというフォルダの中に直接RSS.pmを入れて使うと、 きちんと動きました。 レンタルサーバにFTPでアップすると、 どうしても500エラーが出ます。 いろいろコメントアウトして原因を探ると、 どうもuse XML::RSSでエラーが発生しているみたいなのです。 レンタルサーバはUNIXなので、 文字コードを変えたり、パーミッションを700,755,777,705,etc...と いろいろ設定しましたが動かず、どうしていいものかわかりません。 CGIやPerlについての知識があまりないのでどうしたらよいのかも全く見当がつきません。 過去の質問も見ましたが見当たりませんでした。 なんとしてもRSSリーダを完成させたいので、 どうぞよろしくお願い申し上げます。

    • ベストアンサー
    • Perl
  • XML-DOMについて

    XML-DOMを使いたいのですが、サーバにはXMLパーサは入っていてXML-DOMがないのです。XML-DOMをサーバにコピーして使用できると聞いたのですが、CPANからダウンロードしたXML-DOMの中の、どのファイルをあげればいいのでしょうか? CGIから呼び出す?時は、どのように書くのでしょうか? 初心者なもので宜しくお願い致します。

  • Data::XLSX::Parser について

    perlにて.xlsxフォーマットのExcelファイルを読む場合、1万行以上の場合、Spreadsheet::XLSX->new(ファイル名) を用いると1分以上の時間がかかります。 それでより読み込み速度の速い他のCPANモジュールを探していたら、Data::XLSX::Parser を見つけたので、それをインストールして試用することにしました。 それで、このモジュールのドキュメントにあったSYNOPSISの、以下のソースを作成し実行してみました。 use Data::Dumper; use Data::XLSX::Parser; my $parser = Data::XLSX::Parser->new; $parser->add_row_event_handler(sub { my ($row) = @_; print Dumper $row; }); $parser->parse(ファイル名); 実行した結果、 Can't locate object method "parse" via package "Data::XLSX::Parser" at xlsx.pl line "$parser->parse(ファイル名);"の行番 となり実行不可となります。即ち、このモジュールにはparseというメソッドは無いと言っているようです。 この原因は何で、どう対処したら実行可能になるかを教えて頂きたいと思います。 また、このモジュール全般に関する詳細なドキュメントを見つけられていないので、どこにアクセスすればその情報が得られるかも教えて頂きたいと思います。

  • ppmでXML::Parser::PerlSAXをインストール

    WindowsXPでActivePerlを利用しています。XML::Parser::PerlSAXをインストールしようと思い、  ppm install XML-Parser-PerlSAX としたのですが、  Error: Failed to download URL http://theryx5.uwinnipeg.ca/ppms/XML-Parser-PerlSAX.ppd: 404 Not Found と表示されてしまいインストールできません。そこで、  ppm search PerlSAX としたとろ、  No matchs for 'PerlSAX'; see 'help search'. と表示されてしまいました。ちなみに、リポジトリはデフォルトのほかに  http://theoryx5.uwinnipeg.ca/ppms/ を追加しています。 また、cpanには目的のモジュールがありましたのでファイルをダウンロードして直接インストール使用と思ったのですが、こちらも方法がわからずに失敗しました。 もし、WindowsXP+ActivePerlでPerlSAXをお使いの方がいらっしゃいましたら、インストールの方法を教えてください。宜しくお願いします。

    • ベストアンサー
    • Perl
  • 純Perl製のXMLパーサーはありませんか

    horagaiです。お世話になっております。 PerlでXMLファイルを処理する必要があり、Perlで使えるXMLパーサーを探してみたところ、XMLParserというそのものずばりの名前のモジュールがあることがわかりました。 しかし、これはXMLパーサー本体ではなく、expatというC言語で書かれたXMLパーサーを利用するためのインターフェイスらしいです。それに私は無料ホームページスペースで使いたいので、コンパイルの必要なモジュールは利用できません。 Perlだけで使える(expatのようなPerl以外で書かれた非標準的外部プログラムを必要としない)XML処理用のライブラリー(モジュールではなくパッケージ)をご存知ないでしょうか。 出来れば日本語も処理できる(それもUnicodeだけでなくEUC-JPやShift-JISのファイルも)ようなものが望ましいです。 Perlはテキスト処理が得意なので、Perlで書かれたXMLパーサーは当然あると思っていたのですがどうも見つかりません。 なお利用目的としてはデータ構造を取り出すと言うよりも単にXMLデータをHTMLに直したいだけなので、別にXMLパーサーでなくてもそのような目的に使えるようなパッケージであればそれでも構いません。 なおCPANも一応はチェックして見ましたが見つかりませんでした。(もちろん見落としはあるかも知れませんが) よろしくお願いします。

    • 締切済み
    • XML
  • Perl,relocation error!

    Linux上であるPerlのプログラムを実行させると perl:relocation error: /usr/lib/perl5/site_perl/5.005/i686-linux/auto/XML/Parser/Expat/Expat.so :undefined symbol :Perl-safemalloc というエラーメッセージがでます。自分でも調べていますが正直どう対処していいかわかりません。 これはどういうことを表していて、どう対処すればいいのでしょうか?

専門家に質問してみよう