In genere ai programmatori non piace scrivere documentazione. In parte, questo è dovuto al fatto che i programmi sono semplici file di testo mentre in molti casi la documentazione deve essere scritta utilizzando un word processor.

Ciò richiede di imparare ad usare il word processor e di dedicare un sacco di energie alla forma del documento invece di concentrarsi sul suo contenuto.

In Perl le cose stanno diversamente. Potete infatti scrivere la documentazione dei vostri moduli direttamente nel codice sorgente e usare un tool esterno per formattarla in modo che abbia un aspetto gradevole.

In questo episodio del tutorial Perl ci occuperemo di POD - Plain Old Documentation, ovvero il linguaggio di mark-up usato dagli sviluppatori perl.

Un semplice pezzo di codice perl contenente del POD è il seguente:

#!/usr/bin/perl
use strict;
use warnings;

=pod

=head1 DESCRIZIONE

Questo script puo' avere 2 parametri. Il nome o indirizzo di una macchina
e un comando. Esegue il comando sulla macchina specificata e stampa
l'output a video.

=cut

print "Codice ... \n";

Se lo salvate come script.pl e lo eseguite con perl script.pl, perl ignorerà tutto il testo contenuto tra le linee =pod e =cut. Eseguirà quindi solo il codice vero e proprio.

Invece, se scrivete perldoc script.pl, il comando perldoc ignorerà il codice e leggerà le linee tra =pod e =cut, formattandole secondo certe regole e visualizzandole sullo schermo.

Tali regole dipendono dal vostro sistema operativo e sono esattamente le stesse che si applicano alla documentazione standard di Perl.

Il vantaggio di avere il POD incorporato nel codice è che il vostro codice non può essere distribuito accidentalmente senza documentazione, dato che essa si trova all'interno dei moduli e degli script. Inoltre potete sfruttare i tool e le infrastrutture che la comunità Open Source di Perl ha creato. Anche per farne semplicemente un uso personale.

Troppo semplice?

L'assunzione di base è che se si rimuovono il maggior numero di ostacoli alla scrittura di documentazione ci saranno più persone disposte a scriverla. Invece di dover imparare ad usare un word processor per creare dei documenti di aspetto gradevole, dovete soltanto scrivere il testo con alcuni simboli extra e otterrete dei documenti con un aspetto ragionevole. (I documenti su Meta CPAN sono esempi di POD ben formattato.)

Il linguaggio di markup

La descrizione dettagliata del linguaggio di markup POD si ottiene scrivendo perldoc perlpod ed è molto semplice.

Ci sono alcuni tag come =head1 e =head2 per contrassegnare titoli "molto importanti" e "un po' meno importanti". Ci sono i tag =over per l'indentazione e =item per creare elenchi puntati, e alcuni altri.

C'è =cut per contrassegnare la fine di una sezione POD e =pod per l'inizio. Anche se il tag iniziale non è obbligatorio.

Qualunque stringa che inizia con un simbolo = nel primo carattere della riga viene interpretata come markup POD e da inizio a una sezione POD che verrà chiusa con =cut

POD permette anche di specificare dei link usando la notazione L<un-link>.

Il testo che si trova all'esterno dei tag di markup viene visualizzato come testo semplice.

Il testo che non inizia al primo carattere della riga viene trattato come verbatim, ovvero viene visualizzato esattamente come l'avete scritto: le linee lunghe rimangono lunghe e le linee corrte rimangono corte. È particolarmente utile per gli esempi di codice.

Un punto importante da ricordare è che POD richiede che ci siano delle linee vuote prima e dopo i tag. So

=head1 Titolo
=head2 Sottotitolo
Del Testo
=cut

non produce il risultato che potreste aspettarvi.

L'aspetto

Dato che POD è un linguaggio di mark-up non definisce di per sé come le cose debbano essere visualizzate. Se usate un =head1 state indicando che qualcosa è importante, =head2 indica qualcosa di meno importante.

Il tool usato per visualizzare il POD userà generalmente dei caratteri più grandi per il testo di un head1 che per quello di un head2 e quest'ultimo a sua volta sarà visualizzato con caratteri più grandi del testo semplice. Il controllo è nelle mani del tool di visualizazione.

Il comando perldoc incluso nella distribuzione di perl visualizza il POD come una pagina di man. È piuttosto utile su Linux. Non altrettanto su Windows.

Il modulo Pod::Html fornisce un altro tool da linea di comando chiamato pod2html. Con esso potete convertire un POD in un documento HTML da visualizzare nel browser.

Ci sono poi altri tool che permettono di generare file pdf o mobi dai POD.

Chi sono i lettori?

Dopo aver visto la tecnologia, consideriamo chi sono i lettori.

I commenti (quelli che iniziano con un simbolo # ) sono spiegazioni per i programmatori che fanno manutenzione. Persone che devono aggiungere funzioni o risolvere bug.

La documentazione scritta in POD è per gli utenti. Persone che non dovrebbero guardare il codice sorgente. Per un'applicazione essi sono chiamati utenti finali (in Inglese "end users"). Ovvero chiunque.

Per i moduli Perl, gli utenti sono altri programmatori Perl che vogliono scrivere applicazioni o altri moduli. ANche in questo caso non dovrebbero aver bisogno di guardare il vostro codice sorgente. DOvrebbero poter usare il vostro modulo leggendo soltanto la sua documentazione con il comando perldoc.

Conclusioni

Scrivere della documentazione e darle un aspetto gradevole non è poi così difficile in Perl.