Voglio creare un POD per il mio comando personalizzato e visualizzare la sintassi per quello usando la funzione pod2usage() ..Come creare POD e usare pod2usage in perl?
Qualcuno può darmi un semplice esempio per questo?
saluti, Anandan
Voglio creare un POD per il mio comando personalizzato e visualizzare la sintassi per quello usando la funzione pod2usage() ..Come creare POD e usare pod2usage in perl?
Qualcuno può darmi un semplice esempio per questo?
saluti, Anandan
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.
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
pod2usage (-section => 'NAME'); stampa il NOME + altre sezioni. questo non mi aiuta – Anandan
@Anandan: ho aggiunto una spiegazione su come farlo nella risposta stessa. – Telemachus