ubuntuusers.de

[perl] mehrere Zeilen auskommentieren

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

dersven

Anmeldungsdatum:
16. August 2005

Beiträge: 792

Wohnort: Kreuzlingen, Schweiz

Hi!
Ich komm mir mit der Frage reichnlich blöd vor, aber ich habe wirklich keine Antwort gefunden (also, keine die mich zufriedenstellt).
Und zwar möchte ich mehrere Zeilen in Perl gleichzeitig auskommentieren. z.B. wie in php mit
/*
viele
kommentar-
zeilen
*/

Oder ist das wirklich nicht möglich, und ich muss jede einzelne Zeile mit # auskommentieren?

Grüße!

Adna_rim Team-Icon

Anmeldungsdatum:
8. November 2006

Beiträge: 2521

Jein, also Perl kennt standardmässig nur das Auskommentieren durch ein # welches bis zum Ende einer Zeile reicht. Allerdings besitzt Perl die Möglichkeit eine Dokumentation in den Quellcode einzufügen, welche natürlich nicht ausgeführt wird. Das kannst du dir zu nutze machen und deinen Code durch die Dokumentationssynthax nicht ausführbar machen zB.:

#!/usr/bin/perl -w

=head1
print "Ich und alles unter mir bis =cut wird nicht ausgeführt! \n"; 
blavskldfnjkdfndlf
fadfaerrefgrggre
ergreagaergaer
aegrgaregragrgrg
=cut

print "Ich werde ausgeführt! \n"; 

Also mit =head1 beginnt eine Dokumentation und mit =cut endet sie. Mit diesen zwei Schlüsselwörtern kannst du aber genauso gut auch Code ausdokumentieren, wie in diesem Beispielprogramm gezeigt.

greets

Sid_Burn

Anmeldungsdatum:
23. Oktober 2004

Beiträge: 2159

Sowas sollte man aber nur zum Debuggen nutzen um Code mal auszukommentieren.

Normale Kommentare die auch drin stehen bleiben wenn du das Programm weiter gibst fangen dann mit "#" an. Kommentare über mehrere Zeilen hinweg kennt Perl 5 nicht.

Im Fertigen Code sollten keine Programmkommentare über PODs eingebettet werden, weil PODs als Dokumentation gedacht sind und auch so genutzt werden.

Mehr Infos zu POD:
http://perldoc.perl.org/perlpod.html
http://perldoc.perl.org/perlpodspec.html

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4702

Wohnort: Berlin

Jeder vernünftige Editor bietet auch das Auskommentieren von Blöcken mit einzeiligen Kommentaren. Also einfach Block markieren, entsprechende Tastenkombination drücken/eingeben und schon ist ein '#' vor jeder Zeile im markierten Block.

xoanon

Anmeldungsdatum:
12. Dezember 2006

Beiträge: 121

Wohnort: Hamburg

Um viele Zeilen/Code temporär auszukommentieren würde ich

if (0) { # Test!
.....
} # Ende Test

verwenden. Das wird von dem perl compiler rel. früh wegoptimert.

Perl kennt keine /* */ da man für umfangreiche kommentare POD verwendet ( verwenden sollte ) um so gleich seine Dokumentation direkt im script zu verankert. So kann jeder aus deinem Script raus sich die gewünschte Dokumentation erzeugen.

Da der witz an der sache ist das jemand "pod2man deinscript.pl" eingibt um sich in ruhe deine Dokumentation durchzulesen, würde mit POD auskommentierter code darin auftauchen und zumindest verwirren. Und früher oder später vergisst du das entfernen mal.

MrDoubtfire

Anmeldungsdatum:
18. Oktober 2005

Beiträge: 210

Hallo,

hm, ein anständiger Editor (z. b. vi 😉 ) kennt doch reguläre Ausdrücke ...

Warum dann nicht einfach:

:5,10s/^/#/


im Kommandomodus absetzen ❓ ❓ ❓

MrDoubtfire

Antworten |