HTML::TokeParserの使用中に未定義のエラーが発生します。
print $agent->content();
my $stream = HTML::TokeParser->new($agent->{content});
1行目-printステートメントから目的の出力を取得します。
2行目-エラー:印刷で初期化されていない値$streamを使用しています。
なぜそれが機能しなかったのか分かりませんか?
HTML::TokeParserの使用中に未定義のエラーが発生します。
print $agent->content();
my $stream = HTML::TokeParser->new($agent->{content});
1行目-printステートメントから目的の出力を取得します。
2行目-エラー:印刷で初期化されていない値$streamを使用しています。
なぜそれが機能しなかったのか分かりませんか?
$agent->content
と同じではありません$agent->{content}
。前者はメソッド呼び出しであり、2番目はハッシュ逆参照です。
コンストラクターへのスカラー引数HTML::TokeParser
はファイル名またはファイルハンドルとして扱われ、ファイルを開かないと、コンストラクターが返さundef
れ、が設定され$!
ます。
実際のHTMLをコンストラクターに渡したい場合は、スカラー参照を使用する必要があります。
my $stream = HTML::TokeParser->new( \$agent->content )