Rechercher une page de manuel
Getopt::Long::Descriptive.3pm
Langue: en
Version: 2010-02-14 (ubuntu - 24/10/10)
Section: 3 (Bibliothèques de fonctions)
Sommaire
NAME
Getopt::Long::Descriptive - Getopt::Long with usage textVERSION
Version 0.084DESCRIPTION
Convenient wrapper for Getopt::Long and program usage outputSYNOPSIS
use Getopt::Long::Descriptive; my ($opts, $usage) = describe_options($format, @opts, \%arg);
FORMAT
$format = "usage: myprog %o myarg...";
%o will be replaced with a list of the short options, as well as the text ``[long options...]'' if any have been defined.
%c will be replaced with what Getopt::Long::Descriptive thinks is the program name (see ``prog_name''). You can override this guess by calling "prog_name($string)" yourself.
Because of this, any literal "%" symbols will need to be written as "%%".
OPTIONS
Option specifications are the same as in Getopt::Long. You should pass in an array of arrayrefs whose first elements are option specs and whose second elements are descriptions.my @opts = ( [ "verbose|V" => "be noisy" ], [ "logfile=s" => "file to log to" ], );
Option specifications may have a third hashref argument. If present, this configures extra restrictions on the value or presence of that option.
You may cause a blank line to be printed by passing an empty arrayref. Likewise, a plain descriptive line will be printed if you pass an arrayref with a single element:
@opts = ( $option, [], [ 'other options:' ], $other_option, );
Option Constraints
impliesimplies => 'bar' implies => [qw(foo bar)] implies => { foo => 1, bar => 2 }
required
required => 1
hidden
hidden => 1
This option will not show up in the usage text.
You can achieve this same behavior by using the string "hidden" for the option's description.
one_of
one_of => \@option_specs
Useful for a group of options that are related. Each option spec is added to the list for normal parsing and validation.
Your option name will end up with a value of the name of the option that was chosen. For example, given the following spec:
[ "mode" => hidden => { one_of => [ [ "get|g" => "get the value" ], [ "set|s" => "set the value" ], [ "delete" => "delete it" ], ] } ],
No usage text for 'mode' will be displayed, though get/set/delete will all have descriptions.
If more than one of get/set/delete (or their short versions) are given, an error will be thrown.
If @ARGV is "--get", a dump of the resultant option hashref would look like this:
{ get => 1, mode => 'get' }
NOTE: "get" would not be set if "mode" defaulted to 'get' and no arguments were passed in.
WARNING: Even though the option sub-specs for "one_of" are meant to be 'first class' specs, some options don't make sense with them, e.g. "required".
As a further shorthand, you may specify "one_of" options using this form:
[ mode => \@option_specs, \%constraints ]
Params::Validate
In addition, any constraint understood by Params::Validate may be used.
(Internally, all constraints are translated into Params::Validate options or callbacks.)
EXTRA ARGUMENTS
If the last parameter is a hashref, it contains extra arguments to modify the way "describe_options" works. Valid arguments are:getopt_conf - an arrayref of strings, passed to Getopt::Long::Configure
EXPORTED FUNCTIONS
describe_options
See SYNOPSIS; returns a hashref of option values and an object that represents the usage statement. You should always import this routine, and not call it directly. The ability to call "Getopt::Long::Descriptive::describe_options" may go away in the future.The usage object has several methods:
- •
- "$usage->text" returns the usage string
- •
- "$usage->warn" prints usage to STDERR
- •
- "$usage->die" dies with the usage string
For more information on the usage object, look at Getopt::Long::Descriptive::Usage.
prog_name
This routine returns the basename of $0, grabbed at compile-time.-types
Any of the Params::Validate type constants ("SCALAR", etc.) can be imported as well. You can get all of them at once by importing "-types".-all
This gets you everything.CONFIGURATION
$MungeOptions
When $Getopt::Long::Descriptive::MungeOptions is true, some munging is done to make option names more hash-key friendly:- •
- All keys are lowercased
- •
- "-" is changed to "_"
The default is a true value.
SEE ALSO
Getopt::Long Params::ValidateCUSTOMIZING
Getopt::Long::Descriptive uses Sub::Exporter to build and export the "describe_options" routine. By writing a new class that extends Getopt::Long::Descriptive, the behavior of the constructed "describe_options" routine can be changed.The following methods can be overridden:
usage_class
my $class = Getopt::Long::Descriptive->usage_class;
This returns the class to be used for constructing a Usage object, and defaults to Getopt::Long::Descriptive::Usage.
AUTHOR
Hans Dieter Pearcey, "<hdp@cpan.org>"BUGS
Please report any bugs or feature requests to "bug-getopt-long-descriptive@rt.cpan.org", or through the web interface at <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Getopt-Long-Descriptive>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.COPYRIGHT & LICENSE
Copyright 2005 Hans Dieter Pearcey, all rights reserved.This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre