NAME¶
pod2usage - print a usage message using a script's embedded pod documentation
SYNOPSIS¶
use PDL::Pod::Usage;
pod2usage();
pod2usage(2);
pod2usage({EXIT => 2});
pod2usage({EXIT => 2, VERBOSE => 0});
pod2usage(EXIT => 1, VERBOSE => 2, OUTPUT=\*STDERR);
pod2usage(VERBOSE => 2);
DESCRIPTION¶
pod2usage will print a usage message for the invoking script (using its
embedded pod documentation) and then exit the script with the specified exit
value. It takes a single argument which is either a numeric value
corresponding to the desired exit status (which defaults to 2), or a reference
to a hash. If more than one argument is given then the entire argument list is
assumed to be a hash. If a hash is supplied it should contain elements with
one or more of the following keys:
- "EXIT"
- The desired exit status to pass to the
exit() function.
- "VERBOSE"
- The desired level of "verboseness" to use when
printing the usage message. If the corresponding value is 0, then only the
"SYNOPSIS" section of the pod documentation is printed. If the
corresponding value is 1, then the "SYNOPSIS" section, along
with any section entitled "OPTIONS", "ARGUMENTS", or
"OPTIONS AND ARGUMENTS" is printed. If the corresponding value
is 2 or more then the entire manpage is printed.
- "OUTPUT"
- A reference to a filehandle, or the pathname of a file to
which the usage message should be written. The default is
"\*STDERR" unless the exit value is less than 2 (in which case
the default is "\*STDOUT").
- "INPUT"
- A reference to a filehandle, or the pathname of a file from
which the invoking script's pod documentation should be read. It defaults
to the file indicated by $0 ($PROGRAM_NAME for "use English;"
users).
If neither the exit value nor the verbose level is specified, then the default
is to use an exit value of 2 with a verbose level of 0.
If an exit value is specified but the verbose level is not, then the verbose
level will default to 1 if the exit value is less than 2 and will default to 0
otherwise.
If a verbose level is specified but an exit value is not, then the exit value
will default to 2 if the verbose level is 0 and will default to 1 otherwise.
EXAMPLE¶
Most scripts should print some type of usage message to STDERR when a command
line syntax error is detected. They should also provide an option (usually
"-h" or "-help") to print a (possibly more verbose) usage
message to STDOUT. Some scripts may even wish to go so far as to provide a
means of printing their complete documentation to STDOUT (perhaps by allowing
a "-man" option). The following example uses
pod2usage in
combination with
Getopt::Long to do all of these things:
use PDL::Pod::Usage;
use Getopt::Long;
GetOptions("help", "man") || pod2usage(2);
pod2usage(1) if ($opt_help);
pod2usage(VERBOSE => 2) if ($opt_man);
CAVEATS¶
By default,
pod2usage() will use $0 as the path to
the pod input file. Unfortunately, not all systems on which Perl runs will set
$0 properly (although if $0 isn't found,
pod2usage() will search $ENV{PATH}). If this is
the case for your system, you may need to explicitly specify the path to the
pod docs for the invoking script using something similar to the following:
- •
- "pod2usage(EXIT => 2, INPUT =>
"/path/to/your/pod/docs");"
AUTHOR¶
Brad Appleton <Brad_Appleton-GBDA001@email.mot.com>
Based on code for
Pod::Text::pod2text() written by
Tom Christiansen <tchrist@mox.perl.com>