Hallo Thorsten
$tree = HTML::TreeBuilder->new(); # TreeBuilder erzeugen
$tree->parse_file("document.html"); # Datei parsenfor(@{$tree->extract_links()}) { # Hyperlinks extrahieren
my ($linkname, $reference) = @$_;
print "$linkname\n";
}$tree->delete(); # Parse-Baum löschen
Dein Skript wird Dir zwar alle Link-Texte zeilenweise in die STDOUT schreiben.
Die Informationen auf die LINK-URL gehen aber verloren.
Die Dokumentation zu HTML::TreeBuilder erläutert, dass $tree->extract_links() eine ArrayRef zurückgibt in dessen Array alle Link-Fundstellen aufgelistet sind. Jede Fundstelle (Array-Eintrag) ist selber wieder ein Array mit 2 Einträgen: dem Link-Text und ein HTML::Element-Object auf das HTML::Tree-Element.
Falls Du auf die URL des Links zugreifen willst, musst Du etwa folgenden Code anwenden:
for(@{$tree->extract_links()}) { # Hyperlinks extrahieren
my ($linkname, $reference) = @$_;
$LinkURL = $reference->attr("href");
print "$linkname (URL: $LinkURL)\n";
}
Natürlich musst Du im Kopf noch das Modul HTML::Element laden.
Mit $refernce->attr('attribut') hast Du Zugriff auf alle Attribute des HTML-Elements, in diesem Fall href, name, target, usw. Die Funktion gibt Dir den Wert des Attributes zurück.
Falls noch weiter Fragen sind, dann poste diese bitte in konkreter Aufgabenstellung. Wir versuchen ja, Deine Fragen zu erraten ;-)
Grüsse
Tom