2009-08-05 8 views

Respuesta

15

Tiendo a hacer esto usando Getopt::Long junto con Pod::Usage. (Tengo en este hábito después de leer un tutorial en el sitio PerlMonks, por lo here's the link to that también.) Se ve algo así como este ejemplo:

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; 

Las opciones que no sea $opt_man y $opt_help son irrelevantes para que en ese ejemplo. Acabo de copiar la parte superior de un guión aleatorio que tenía aquí.

Después de eso, solo necesita escribir el POD. Aquí está a good link que describe los conceptos básicos de POD en sí.

Editar: En respuesta a la pregunta del PO en los comentarios, aquí está cómo se puede imprimir sólo la sección NAME cuando se pasa una opción apropiada. Primero, agregue otra opción al hash de opciones en GetOptions. Usemos 'name' => \$opt_name aquí. A continuación, añadir lo siguiente:

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

nivel de detalle 99 es mágico: se le permite elegir una o más secciones sólo para ser impresos. Consulte la documentación de Pod::Usage bajo -sections para obtener más detalles. Tenga en cuenta que -sections (el nombre) es plural aunque solo desee una sección.

+0

gracias por la respuesta ... eso fue útil ... pero tengo una consulta más aquí. Quiero imprimir solo la sección "NOMBRE" usando esto ... no sé cómo hacer eso. ¿Pueden ayudarme con eso? – Anandan

+0

pod2usage (-section => 'NAME'); imprime el NOMBRE + otras secciones. esto no me ayuda – Anandan

+0

@Anandan: Agregué una explicación sobre cómo hacer esto en la respuesta en sí. – Telemachus

4

Hay un montón de buenos ejemplos en la página de manual perlpod. Pod2usage se explica here.

+1

No veo pod2usage mencionado allí, sin embargo? –

+0

@Brian Agnew: Sí, tienes razón. He editado mi respuesta para vincularla con la explicación de pod2usage y ejemplos. –

Cuestiones relacionadas