POD — to wbudowany format dokumentacji w Perl, który powstał historycznie wraz z rozszerzeniem języka w celu wsparcia dużych projektów. Jego fundamentalna różnica: dokumentacja zawsze jest przechowywana bezpośrednio w kodzie źródłowym, co pomaga nie tracić związku między realizacją a opisem (w obecnym czasie w zasadzie jest nieodłączna od rozwoju skomplikowanych modułów w Perl).
Problem: programiści często albo nie wiedzą, albo ignorują systemy automatycznego generowania dokumentacji, mimo że ekosystem Perl (CPAN) wyraźnie tego wymaga dla wszystkich modułów.
Rozwiązanie — stosować POD dla każdego pliku, klasy i funkcji. Do automatyzacji istnieją takie narzędzia, jak perldoc, pod2man, Pod::Coverage. Wyraźna zasada: jeśli twój moduł nie ma POD — nie jest akceptowany w środowisku korporacyjnym lub nie trafia na CPAN.
Przykład kodu:
=head1 NAME My::Module - przykład użycia POD =head1 SYNOPSIS use My::Module; ... =head1 DESCRIPTION Ta funkcja robi... =cut
Kluczowe cechy:
Czy POD może znajdować się wewnątrz podprogramu, a nie tylko na początku pliku?
Odpowiedź: Tak, specyfikacja POD zezwala na wstawki po dowolnych kluczowych konstrukcjach: po deklaracji funkcji, metod, a nawet wewnątrz bloków.
Co się stanie, jeśli napiszesz kod wewnątrz bloku POD?
Odpowiedź: Wszystko między =pod (lub innym nagłówkiem) a =cut jest ignorowane przez interpreter. Kod tam nie zostanie wykonany! To częsty błąd.
Jak dokumentować prywatne funkcje w POD?
Odpowiedź: Przyjęło się dodawać sekcję INTERNALS lub PRIVATE FUNCTIONS, albo nie włączać takiej dokumentacji do SYNOPSIS. Nie zaleca się całkowitego ukrywania dokumentacji, szczególnie jeśli biblioteka jest publiczna.
Moduł dostarczany bez dokumentacji. Nowi programiści muszą czytać kod źródłowy, aby zrozumieć magiczne parametry funkcji.
Zalety:
Wady:
Cały kod jest wzbogacony o POD, przykład użycia umieszczony w sekcji SYNOPSIS, każda funkcja jest opisana, istnieje wskazanie ograniczeń.
Zalety:
Wady: