Thread Hyperlinks in HTML Datei öffnen (1 answers)
Opened by Lauvia at 2013-10-16 16:00

clms
 2013-10-16 17:33
#171207 #171207
User since
2010-08-29
373 Artikel
BenutzerIn
[default_avatar]
Was mir auf die Schnelle auffällt:

1. bei Dir fehlt use warnings; use strict;. Andernfalls hätte Perl Zeile 5 anmeckern sollen.

2. statt Zeile 3+5 schreib besser foreach my $html_file (@files) {

3. glob("$DIR/*.*.html");  liefert Dir auch die Files der 3. Ebene, da '*' auch den Punkt '.' abdeckt.

4. open() besser in der 3-Argumente-Variante benutzen

5. statt if (!open(...)) { Log_Error("..."); die; } verwende ich open(...) or die "...: $!";. Das kann man - wenn gewünscht auch um Log_Error() erweitern. Wichtig ist IMO, dass die Original-Fehlermeldung aus $! mit ausgegeben wird.
Außerdem mag ich es nicht so, wenn die eigentliche Hauptfunktion in der Bedingung des if-Statements versteckt wird. Aber da gilt TIMTOWTODI.



Nun zu Deinem eigentlichen Problem 1:
Ich würde die Regex /href\=/ erweitern zu /href=["']?(.*?)["']?[ >]/ (o.ä). Dann landet der Teilstring, der von (.*\) gematched wird in $1 und Du kannst als erstes Statement im IF-Block my $link = $1 schreiben. Dann musst Du evtl. noch den Inhalt von $link filtern um an den gewünschten Filenamen der 3. Ebene zu kommen.

View full thread Hyperlinks in HTML Datei öffnen