As you get acquainted with Pod::Usage, consider the normal layout of manual pages, and use it. You'll find that Pod::Usage::pod2usage provides the means to display just the SYNOPSIS portion or the whole manual. As for testing that the user gives you exactly one command-line "option":
#!/usr/bin/perl
=head1 NAME
name_of_utility_or_module
=head1 SYNOPSIS
brief example/template/summary of typical use(s), e.g.:
prog_name -d
prog_name -h
prog_name -p foobar
=head1 DESCRIPTION
Paragraphs that describe the purpose, usage and various
behaviors of the utility or module in suitable detail...
=cut
use strict;
use Getopt::Std;
use Pod::Usage;
my %opt;
getopts('dp:h', \%opt);
pod2usage(2) if (keys %opt != 1); # die here if too many options were
+ given
print "ok, here we go...\n";
if ( $opt{d} ) {
# do this..
}
if ( $opt{p} ) {
# do that...
}
if ( $opt{h} ) {
pod2usage(-exitstatus => 0, -verbose => 2); # exit & show full man
+ page
}