Ein Quelltext in Perl sieht wirklich oft aus, als wäre die Datei zerschossen. Eine Sprache, in der so eine Anweisung wie…
s/^\< [^\<]+\>\s*//;
…völlig zulässig und (in meinem Fall) sinnvoll ist, die ist schon ein bisschen krank.
-
Nachtwächter
Kommentare
Kommentieren
In der Archivversion kann nicht kommentiert werden.
Bio am 6.3.2008 um 22:16
Renée am 7.3.2008 um 09:07
Der Teil »^\< [^\\s*« ist Perl-unabhängig. Das sind Reguläre Ausdrücke, wie es sie in vielen Sprachen gibt – und dort sehen sie teilweise noch hässlicher aus, weil man z.B. in Java die »\« nochmal escapen muss.
Außerdem ist dieser Regex schlecht. Übersichtlicher wäre »^< [^\s*«.
Das sieht so aus, als sollten HTML/XML-Tags aus einem Text entfernt werden. Mit so einem Regulären Ausdruck läuft man Gefahr, dass man bei einem nicht ganz sauberen Quelltext das Falsche löscht. Für so etwas sollte man dann besser einen richtigen Parser verwenden (z.B. HTML::Parser).
Renée am 7.3.2008 um 09:09
Mmmhhh… Das Parsing der Kommentare ist schlecht, da die spitzen Klammern in den Regulären Ausdrücke nicht umgewandelt werden in < bzw. >
Damit sind die Regexen in meinem Kommentar unvollständig!
Renée am 7.3.2008 um 09:10
alert(‹XSS Lücke!‹)
Nachtwächter am 7.3.2008 um 13:32
Keine Sorte, Renée, diesen RE verwende ich nicht für ein Webprojekt, und
HTML::Parser
ist mir wohl bekannt. (Obwohl ich fürs Web »poor hackers perl«, also PHP, bevorzuge.) Tatsächlich lässt sich der RE nicht weiter runterbrechen. Es geht hier um etwas, worin Perl wirklich gut ist, um Datenverarbeitung an Textdateien.Ich habe hier eine handgeschriebene, historisch gewachsene Datei vorliegen (es ist eine Kollektion von Transkriptionen des Voynich-Manuskriptes). Ich wollte die Informationen aus dieser Datei in eine vollständig normalisierte Datenbank bringen, um leichter Analysen machen zu können. (Die erste Version dieser Datenbank ist fertig, Perl ist vergleichen mit anderen Sprachen für so etwas wirklich eine Wucht!)
Diese Datei enthält Meta-Informationen und eigentliche Daten bunt durcheinander, und das keineswegs immer in einem konsistenten Format. Gut, dass es Perl gibt!
Und zum Thema RE: Wenn so ein RE mitten im Quelltext steht und in einer Schleife implizit $_ verwendet, sieht das einfach ein bisschen krank aus. Vor allem, wenn davon ein paar mehr untereinander stehen…
Der
alert
war ein netter Versuch, sollte ich auch wieder viel öfter machen…Renée am 7.3.2008 um 15:03
> Der alert war ein netter Versuch, sollte ich auch
> wieder viel öfter machen…
Ja, so etwas macht man bei eigenen Anwendungen viel zu selten
Ich habe mich nur etwas über die Umwandlungen (bzw. Nicht-Umwandlung) von bestimmten Zeichen in den Kommentaren gewundert.
Nachtwächter am 7.3.2008 um 15:30
Ach, diese Umwandlungen sind immer noch eine Strokelwüste, das sind so einige. Natürlich filtere ich hier eine große Menge HTML aus, und das wird auch immer so bleiben. Die anderen Umwandlungen betreffen die Anführungszeichen, die ich lieber »hübsch« mache (wie man hier ja sieht), der Code bedarf mal wieder meiner pflegenden Hand. Es gibt eben keine Sache, die so einfach wäre, dass ich sie nicht falsch machen könnte…