6 Stimmen

Was ist der Grund dafür, dass es in Perl keinen einfacheren mehrzeiligen Kommentar gibt?

Ich kenne verschiedene Methoden zur Einführung von mehrzeiligen Kommentaren in Perl. Aber ich möchte wissen, warum es keine einfachere mehrzeilige Kommentarfunktion gibt, wie /* comment */ was die Sache sehr erleichtern würde.

Ich folge derzeit http://www.perlmonks.org/?node_id=560985 um mehrzeilige Kommentare zu erhalten. Gibt es Pläne, diese Funktion in nächster Zeit in Perl aufzunehmen?

12voto

jrockway Punkte 40754

Kommentare im Stil von C bringen eine Reihe von Problemen mit sich, darunter die Unmöglichkeit, Kommentare auszukommentieren. Darüber hinaus fördert die bequeme Syntax für einzeilige Kommentare die Prägnanz des Codes, der dadurch leichter zu lesen ist. Ein weiterer Vorteil ist das Fehlen von 10-zeiligen "Autor: ... Eingabe: ... Ausgabe: ... Lieblingsfarbe: ..."-Blöcken, die man in C und C++ gelegentlich sieht.

Mehrzeilige Kommentare ermutigen dazu, lange Texte zu schreiben, die besser kurz und bündig oder als Dokumentation ausgedrückt werden sollten, was Perl mit seinem # y =pod Operatoren (jeweils).

Wenn Sie Probleme mit der Art der Kommentierung in Perl haben, sollten Sie Ihren Editor so konfigurieren, dass er Programme und nicht Text bearbeitet. Wenn Sie in Emacs anfangen, etwas zu schreiben wie # this is a comment that is getting longer and longer and longer and oh my goodness we are out of space on this line what to do now und tippen M-q ein, fügt Emacs automatisch die # am Anfang jeder Zeile, die es erstellt.

Wenn Sie nur einen Codeblock auskommentieren wollen, dann brauchen Sie nicht weiter zu suchen als M-x comment-region y M-x uncomment-region , das die Region in so ziemlich jeder Sprache auskommentiert, auch in Perl.

Stressen Sie sich nicht wegen der Syntax der Kommentare; das ist die Aufgabe des Computers!

6voto

Ted Hopp Punkte 227177

Dies wurde auf der Mailingliste perl6-language@perl.org diskutiert. Obwohl die Diskussion am Ende nicht schlüssig war, wurde die Zusammenfassung veröffentlicht aquí ist eine interessante Lektüre.

3voto

Foo Bah Punkte 24553

Wie bei jeder mehrzeiligen Kommentarstruktur gibt es eine "offene" und eine "geschlossene" Kommentarbedingung, und das führt zu Problemen mit verschachtelten Kommentaren.

C verwendet z. B. /* als Öffnungszeichen und */ als Schließzeichen. Wie behandelt ein mehrzeiliges Kommentarsystem Kommentare innerhalb von Kommentaren? C schlägt fehl, wenn Sie versuchen, einen Block zu kommentieren, der bereits kommentiert ist.

Beachten Sie, dass zeilenbasierte Kommentare (z. B. c++ // comments) nicht unter diesem Problem leiden.

0voto

bdonlan Punkte 213545

Die Einfachheit liegt im Auge des Betrachters. Abgesehen davon gibt es bereits eine Reihe von Möglichkeiten, mehrzeilige Kommentare zu erstellen. Erstens, ungültige String-Literale:

q{This text won't do anything.
Neither will this.};

Dies hat den unglücklichen Nebeneffekt, dass eine Warnung ausgelöst wird:

Useless use of a constant in void context at - line 4.

Eine weitere Möglichkeit ist die Verwendung eines heredoc im void-Kontext - aus irgendeinem Grund führt dies nicht zu einer Warnung:

<<ENDCOMMENT;
Foo comment bar.
ENDCOMMENT

Wie Sie sehen können, liegt das Problem nicht an der fehlenden Syntax an sich (die Kommentare in der Python-Dokumentation sehen der q{} Methode) - es ist eher so, dass sich die Gemeinschaft der Perl-Programmierer auf Zeilenkommentare mit # und POD. Wenn Sie an dieser Stelle eine andere Methode verwenden, verwirrt das nur die Leute, die Ihren Code später lesen müssen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X