Thread Hyperlinks in HTML Datei öffnen
(1 answers)
Opened by Lauvia at 2013-10-16 16:00
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. |