POD ist ein integriertes Dokumentationsformat in Perl, das historisch zusammen mit der Erweiterung der Sprache zur Unterstützung großer Projekte entstanden ist. Sein grundlegendes Merkmal: Die Dokumentation wird immer direkt im Quellcode gespeichert, was hilft, die Verbindung zwischen Implementierung und Beschreibung nicht zu verlieren (momentan im Prinzip untrennbar von der Entwicklung komplexer Module in Perl).
Problem: Häufig wissen Programmierer entweder nicht, oder ignorieren Systeme zur automatischen Dokumentationserstellung, obwohl das Perl-Ökosystem (CPAN) dies eindeutig für alle Module erfordert.
Lösung – Verwenden Sie POD für jede Datei, Klasse und Funktion. Zur Automatisierung gibt es Werkzeuge wie perldoc, pod2man, Pod::Coverage. Klare Regel: Wenn Ihr Modul ohne POD ist – wird es nicht in die Unternehmensumgebung aufgenommen oder kommt nicht auf CPAN.
Beispielcode:
=head1 NAME My::Module - Beispiel für die Verwendung von POD =head1 SYNOPSIS use My::Module; ... =head1 DESCRIPTION Diese Funktion macht... =cut
Wesentliche Merkmale:
Kann sich POD innerhalb einer Unterprogramm befinden, und nicht nur am Anfang der Datei?
Antwort: Ja, die POD-Spezifikation erlaubt Einfügungen nach beliebigen Schlüsselkonstruktionen: nach Funktions- und Methodendeklarationen, sogar innerhalb von Blöcken.
Was passiert, wenn Sie Code innerhalb eines POD-Blocks schreiben?
Antwort: Alles zwischen =pod (oder einem anderen Header) und =cut wird vom Interpreter ignoriert. Der Code dort wird nicht ausgeführt! Dies ist ein häufiger Fehler.
Wie dokumentiert man private Funktionen in POD?
Antwort: Es ist üblich, einen Abschnitt INTERNALS oder PRIVATE FUNCTIONS hinzuzufügen, oder diese Dokumentation nicht im SYNOPSIS einzuschließen. Es wird nicht empfohlen, die Dokumentation vollständig zu verbergen, insbesondere wenn die Bibliothek öffentlich ist.
Das Modul wird ohne Dokumentation bereitgestellt. Neue Entwickler müssen den Quellcode lesen und die magischen Parameter der Funktionen verstehen.
Vorteile:
Nachteile:
Der gesamte Code ist mit POD ausgestattet, das Beispiel für die Verwendung wird im SYNOPSIS-Bereich angezeigt, jede Funktion ist beschrieben, es gibt Einschränkungen.
Vorteile:
Nachteile: