2009-08-05 9 views

risposta

15

Tendo a farlo utilizzando Getopt::Long insieme a Pod::Usage. (Ho avuto in questa abitudine dopo aver letto un tutorial sul sito PerlMonks, in modo here's the link to that pure.) Sembra qualcosa di simile questo esempio:

use Getopt::Long; 
use Pod::Usage; 

my($opt_help, $opt_man, $opt_full, $opt_admins, $opt_choose, $opt_createdb,); 

GetOptions(
    'help!'     =>  \$opt_help, 
    'man!'     =>  \$opt_man, 
    'full!'     =>  \$opt_full, 
    'admin|admins!'   =>  \$opt_admins, 
    'choose|select|c=s'  =>  \$opt_choose, 
    'createdb!'    =>  \$opt_createdb, 
) 
    or pod2usage("Try '$0 --help' for more information."); 

pod2usage(-verbose => 1) if $opt_help; 
pod2usage(-verbose => 2) if $opt_man; 

Le opzioni diverse da $opt_man e $opt_help sono irrilevanti a voi in questo esempio. Ho appena copiato la parte superiore di uno script casuale che avevo qui.

Dopodiché, è sufficiente scrivere il POD. Ecco lo a good link che descrive le basi del POD stesso.

Edit: In risposta alla domanda del PO nei commenti, ecco come si potrebbe stampare solo la sezione NAME quando superato un opzione appropriata. Innanzitutto, aggiungi un'altra opzione all'hash delle opzioni in GetOptions. Usiamo 'name' => \$opt_name qui. Quindi aggiungere:

pod2usage(-verbose => 99, -sections => "NAME") if $opt_name; 

Il livello verboso 99 è magico: consente di selezionare una o più sezioni solo per la stampa. Vedere la documentazione di Pod::Usage sotto -sections per ulteriori dettagli. Si noti che -sections (il nome) è plurale anche se si desidera una sola sezione.

+0

grazie per la risposta..che è stato utile .. ma ho ancora una query qui. voglio stampare solo la sezione "NAME" usando questo .. non so come si fa. Posso aiutarmi? – Anandan

+0

pod2usage (-section => 'NAME'); stampa il NOME + altre sezioni. questo non mi aiuta – Anandan

+0

@Anandan: ho aggiunto una spiegazione su come farlo nella risposta stessa. – Telemachus

4

Ci sono un sacco di buoni esempi nel perlpod pagina di manuale. Pod2usage è spiegato here.

+1

Non vedo pod2usage menzionato lì, però? –

+0

@Brian Agnew: Sì, hai ragione. Ho modificato la mia risposta per collegare alla spiegazione e agli esempi di pod2usage. –

Problemi correlati