Hallo Jan,
Öhm, kann mir mal einer sagen was in folgenden Zeilen gemacht wird :):
Eigentlich das, was Du besser mit CGI.pm bzw. URI::Escape und HTML::Parser erledigen solltest (zumindest die erste Zeile ;)
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
Hier werden URL-codierte Sonderzeichen (% + hexadezimale Darstellung des Asciiwert) wieder decodiert.
Da im Erstezungsteil keine Zeichenkette, sondern Funktionen stehen, muss dieser Teil mit der Option /e evaluiert/ausgeführt werden.
$value =~ s/<!--(.|\n)*-->//g;
Das soll Kommentare auch über mehrere Zeilen entfernen. Allerdings wird das hier in der denkbar schlechtesten Form "erledigt".
Zum einen ist die Klammer überflüssig, da man mit dem Modifier /s den . auch \n finden lassen kann.
Zum Anderen wird _so_ alles zwischen dem ersten Auftreten von <!-- sowie dem letzten Auftreten von --> gelöscht, da der Quantifier * "gierig" ist, also versucht, so viel wie möglich zu finden. Mit einem ? dahinter kann man dem * dieses Verhalten "abgewöhnen". ;)
Besser ist es aber imho, HTML mit dem HTML::Parser zu bearbeiten. Denn so wie ich die Sache sehe, folgt dieser Zeile bestimmt noch die, in der HTML-Tags entfernt werden sollen ;)
Ich weiß das irgendwas ersetzt wird, nur was genau? Und auch die Flags "eg" irritieren mich etwas. Zumindest das "e".
Hoffentlich ist es jetzt klarer. :) In perldoc perlre, perldoc perlop, perldoc perlfunc, perldoc CGI und perldoc HTML::Parser findest Du weitere Informationen zu den verwendeten Funktionen bzw. Operatoren sowie den Modulen, die dies für Dich sicherlich einfacher erledigen.
Gruß Alex
--
http://www.google.de/search?hl=de&safe=off&q=Rechtschreibung+Standart