http://www.perlmonks.org?node_id=929250


in reply to ARGV issue

I use Getopts:;Long to parse command line arguments, and Pod::usage to display the POD documentation which is in the same file.

use POSIX qw{strftime}; use Getop:;Long; use Pod::Usage; my %options = (date => strftime( %Y-%m-%d); Getopts( \%options, 'date=s', 'help', 'man' ) or pod2usage( { '-message' => 'Error processing command line args', + '-verbose' => 0, '-exitval' => 1, }); pod2usage( { '-verbose' => 1 }) if exists $options{help}; pod2usage( { '-verbose' => 2 }) if exists $options{man}; __END__ =head1 NAME myprog - Use it to demo Getopt::Long and Pod::Usage =head1 SYNOPSIS myprog [-date yyyy-mm-dd] [-help] --man' =head1 ARGUMENTS =over 4 =item -date yyyy-mm-dd The date to process. If not specified, today's date is used. =item -help Display a brief summary of the documentation, but not as brief as shown for a command line argument error. =item -man Display complete man page. =back =head1 DESCRIPTION This is what the program does, and how it works. =head1 AUTHOR me =cut

As Occam said: Entia non sunt multiplicanda praeter necessitatem.