Getopt::Long::Spec::Parser - Parse a Getopt::Long option spec into a set of attributes
version 0.002
This module parses an option specification as would normally be used with Getopt::Long, and produces a hash showing the meaning/parameters the spec describes... if that makes any sense at all...
Perhaps a little code snippet.
use Getopt::Long::Spec::Parser; my $parser = Getopt::Long::Spec::Parser->new(); my %spec_info = $parser->parse( 'foo|f=s@{1,5}' ); # OR... my %spec_info = Getopt::Long::Spec::Parser->parse( 'foo|f=s@{1,5}' );
%spec_info should be a hash containing info about the parsed Getopt::Long option specification
construct a new parser.
my $parser = Getopt::Long::Spec::Parser->new(); # OR... my $parser = Getopt::Long::Spec::Parser->new( debug => 1, );
parse an option specification
my %spec_info = $parser->parse( 'foo' ); # OR... my %spec_info = Getopt::Long::Spec::Parser->parse( 'foo' );
return the info parsed from the spec as a hash, or hashref, depending on context.
In scalar context, returns a hashref, in list context, returns a hash.
Described as a grammar:
opt_spec ::= name_spec (arg_spec)? # if no arg_spec, option is a flag. name_spec ::= opt_name ("|" opt_alias)* opt_alias ::= /\w+/ opt_name ::= /\w+/ arg_spec ::= "=" val_type (dest_type)? (repeat)? # simple required | ":" (val_type | /\d+/ | "+") (dest_type)? # simple optional | "!" # flag negatable | "+" # flag incremental arg_type ::= "s" | "i" | "o" | "f" # string, integer, extint, float dest_type ::= "@" | "%" # array or hash repeat ::= "{" (min_val)? ("," max_val)? "}" # multiple-values per use min_vals ::= /\d+/ max_vals ::= /\d*/
Stephen R. Scaffidi <sscaffidi@cpan.org>
This software is copyright (c) 2012 by Stephen R. Scaffidi.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Getopt::Long::Spec, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Getopt::Long::Spec
CPAN shell
perl -MCPAN -e shell install Getopt::Long::Spec
For more information on module installation, please visit the detailed CPAN module installation guide.