Antwort #12 am: 28. September 2009, 19:21:49
Hmm, auf Anhieb wusste ich auch nicht genau was der Ausdruck macht. Aber wenn ich mal meine Perl-Kenntnisse ausgrabe, mal sehen was sich da analysieren lässt:
Der Ausdruck sucht zuerst nach einem \n (Linefeed oder Zeilenumbruch) direkt gefolgt von einem # Das könnte/müsste dann ein Kommentarbeginn sein.
Der gefundene Ausdruck wird dann ersetzt durch:
\n (Linefeed oder Zeilenumbruch), ausführbar durch die "", daher wird hier ein Zeilenumbruch eingebaut.
. Hmm, grübel. Der Punkt . ist die Abkürzung für eine ganz spezielle Zeichenklasse, die alle Zeichen außer dem Zeilenumbruch beinhaltet. Wird öfter benutzt als wildcard für gierige Abfragen, die nicht nur das nächste gesuchte Zeichen finden, sondern alle darauf folgenden Vorkommen des gesuchten Zeichens, solange es etwas zu finden gibt. Was der jetzt hier im Ersetzen-String zu suchen hat ist mir schleierhaft.
'\#' setzt ein Kommentarzeichen ein, maskiert durch Backslash und nicht ausführbar wegen ' '.
Falls diese Ersetzen-Funktion überhaupt was macht, könnte ich mir vorstellen, dass sie nach einem Zeilenumbruch direkt gefolgt von einem Kommentarzeichen sucht, diese beiden Zeichen in zwei separate Zeichen aufspaltet.
Also erst den Zeilenumbruch,
dann das Kommentarzeichen.
Könnte also ein Bugfix sein, damit Zeilenumbruch und Kommentarbeginn in zwei unterschiedlichen Zeilen landen.