Stumpf nach Perldoc gelesen
perldoc HTML::Elementlook_down
@elements = $h->look_down( ...criteria... );
$first_match = $h->look_down( ...criteria... );
This starts at $h and looks thru its element descendants (in pre-order), looking for elements matching the criteria you specify. In
list context, returns all elements that match all the given criteria; in
scalar context, returns the first such element (
or undef, if nothing matched).
(Kursiv- u. Fettdruck von mir.)
Wenn look-down() nichts findet, kommt da also ein undef von look-down()zurück, auf das Du dann attr_get_i() anwendest, was dann zu der Meldung führt.
Ich würde also tippen:
Die Ergebnisliste von look-down() zwischenspeichern und auf die Listenelemente, so welche da sind, dann attr_get_i() anwenden...
Worin nun genau der Unterschied zwischen Deiner Variante "im Main" und "in der Sub" liegt, kann ich mangels Glaskugel nicht beurteilen.
Und wenn ich in der Perldoc zu look-down() weiterlese, gewinne ich den Eindruck, dass sich Deine Suchkriterien widersprechen; speziell das Kriterium für "href" und die Code-Referenz.
edit: Denkfehler gestrichen.
Last edited: 2016-02-16 14:34:37 +0100 (CET)
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!