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