2009-03-12 3 views
-1

は、私はエラー"未定義のサブルーチン&HTML :: Entitiesが::呼ばdecode_entities"

未定義のサブルーチン&にHTML :: Entitiesを取得しています::もののdecode_entitiesは、LWP::UserAgentを使用して

をcalled`モジュールはそこにあり、HTML::Parserモジュールもあります。

XSモジュールが不足していると思われます。問題の機能はXSで実装されているようですが、私は迷っています。

+0

問題を示す短いサンプルスクリプトを表示できますか? –

答えて

-1

この行欠けています:HTML::EntitiesCPAN pageから

use HTML::Entities; 

を、それがこのように使用する必要があります:あなたがHTMLに何か問題があると思われる場合

use HTML::Entities; 
my $a = "Våre norske tegn bør &#230res"; 
decode_entities($a); 
encode_entities($a, "\200-\377"); 

::エンティティパッケージシステム上のソースを確認することができます。 bashから:

vim $(perldoc -l HTML::Entities) 

ファイルをテキストエディタで開いたら、サブルーチンが定義されていることを確認できます。私はパッケージが正しいと思うが、パッケージが "使用されていない"可能性が高い。

ます。また、それはあなたのプログラムの外に動作するかどうかを確認するには、コマンドラインでこれをテストすることができますHTMLの

perl -MHTML::Entities -le 'print HTML::Entities::decode_entities("Våre norske tegn bør &#230res")' 
+0

明示的にモジュールをテストとして使用しようとしましたが、動作しませんでした。また、LWP :: UserAgentの内部では動作しません。 – heeen

+0

perl one-linerは機能しますか?サブルーチンが定義されているかどうか、パッケージをチェックしましたか?それがすべてチェックアウトされたら、ポストにコードを追加することは可能ですか? – gpojd

+0

より充実したコードを投稿できますか?私は最近のHTML :: Entitiesのバージョンを最近使用しており、うまくいきます。だから私はそれがモジュールだとは思わない。 – Telemachus

1

最近のバージョン::エンティティは、HTMLをロードすることによってdecode_entitiesルーチンを得ることに依存:: ParserのモジュールのXSコンポーネント。 2つのモジュールが一緒に配布されているので、これは問題ではありませんが、代わりにXSを使用しなかった古いHTML :: Parserバージョン(HTML :: Parserの複数のバージョンがインストールされています。最初に見つけた)。

HTML :: Parserで$ VERSIONを確認し、その分布をhttp://search.cpan.org/dist/HTML-Parserで調べて、配布に含まれているHTML :: Entitiesのバージョンがあることを確認します。