Quiero crear un POD para mi propio comando personalizado y mostrar la sintaxis para eso usando la función pod2usage() ..¿Cómo crear POD y usar pod2usage en Perl?
¿Alguien me puede dar un ejemplo simple para eso?
Saludos, Anandan
Quiero crear un POD para mi propio comando personalizado y mostrar la sintaxis para eso usando la función pod2usage() ..¿Cómo crear POD y usar pod2usage en Perl?
¿Alguien me puede dar un ejemplo simple para eso?
Saludos, Anandan
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.
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
pod2usage (-section => 'NAME'); imprime el NOMBRE + otras secciones. esto no me ayuda – Anandan
@Anandan: Agregué una explicación sobre cómo hacer esto en la respuesta en sí. – Telemachus