NAME
Crane::Options - Command line options and arguments parser.
SYNOPSIS
use Crane::Options;
my $option = options->{'version'};
my $arg2 = args->[1];
DESCRIPTION
Parses command line options and arguments. Options are available as hash reference returned by "options" function and arguments are available as array reference returned by "args" function.
You can configure options by passing list of array references when first call "options" function (see description below).
By default two options are available: version and help (? as short alias).
CONSTANTS
- $OPT_SEPARATOR
-
Not an option exaclty, just a separator in help output.
Equals to:
[]
- $OPT_VERSION
-
Version information output.
Equals to:
[ 'version!', 'Shows version information and exists.' ]
- $OPT_HELP
-
Help output.
Equals to:
[ 'help|?!', Shows this help and exits.' ]
FUNCTIONS
- options LIST
-
Returns hash reference to command line options.
Can be configured when first call with list of options. For create an option you should pass a list of array references with one required and two optional items:
- Specification (required)
-
Scalar. Specification from Getopt::Long module.
- Description (optional)
-
Scalar. Text description - what is this option does?
- Parameters (optional)
-
Hash reference. Additional parameters:
- default
-
Default value for option if option does not exist.
- required
-
Flag that option should be exists.
- args
-
Returns array reference to command line arguments.
ERRORS
- Invalid option specification: %s
-
Where
%s
is specification string.Fires when required parameter of specification is not defined or incorrect.
DIAGNOSTICS
EXAMPLES
Simple option in compare with defaults
Configuration:
options(
[ 'config|C=s', 'Path to configuration file.' ],
$OPT_SEPARATOR,
$OPT_VERSION,
$OPT_HELP,
);
Help output:
example.pl <options> <args>
-C --config Path to configuration file.
--version Shows version information and exists.
-? --help Shows this help and exits.
Two required arguments, one with default value and default options
Configuration:
options(
[ 'daemon|M!', 'Run as daemon.', { 'default' => 1 } ],
$OPT_SEPARATOR,
[ 'from=s', 'Start of the interval.', { 'required' => 1 } ],
[ 'to=s', 'End of the interval.', { 'required' => 1 } ],
$OPT_SEPARATOR,
$OPT_VERSION,
$OPT_HELP,
);
Help output:
example.pl <options> <args>
-M --daemon Run as daemon.
--from Start of the interval.
--to End of the interval.
--version Shows version information and exists.
-? --help Shows this help and exits.
AUTHOR
Tema Novikov, <novikov.tema@gmail.com>
COPYRIGHT AND LICENSE
Copyright 2013-2014 Tema Novikov.
This library is free software; you may redistribute it and/or modify it under the same terms as Perl itself.