1

HTML::TokeParserの使用中に未定義のエラーが発生します。

print $agent->content();
my $stream = HTML::TokeParser->new($agent->{content});

1行目-printステートメントから目的の出力を取得します。

2行目-エラー:印刷で初期化されていない値$streamを使用しています。

なぜそれが機能しなかったのか分かりませんか?

4

2 に答える 2

1

$agent->contentと同じではありません$agent->{content}。前者はメソッド呼び出しであり、2番目はハッシュ逆参照です。

于 2012-08-29T22:53:26.810 に答える
1

コンストラクターへのスカラー引数HTML::TokeParserはファイル名またはファイルハンドルとして扱われ、ファイルを開かないと、コンストラクターが返さundefれ、が設定され$!ます。

実際のHTMLをコンストラクターに渡したい場合は、スカラー参照を使用する必要があります。

my $stream = HTML::TokeParser->new( \$agent->content )
于 2012-08-29T23:02:10.740 に答える