App::Spec::Argument - App::Spec objects representing command line options or parameters
Options can be defined in a verbose way via key value pairs, but you can also use a shorter syntax.
The idea comes from Ingy's http://www.schematype.org/.
The first item of the string is the name of the option using a syntax very similar to the one from Getopt::Long.
Then you can optionally define a type, a default value and a summary.
You can see a list of supported syntax in this example from t/data/12.dsl.yaml:
t/data/12.dsl.yaml
--- # version with short dsl syntax name: myapp appspec: { version: 0.001 } class: App::Spec::Example::MyApp title: My Very Cool App options: - spec: foo --Foo - spec: verbose|v+ --be verbose - spec: +req --Some required flag - spec: number=i --integer option - spec: number2|n= +integer --integer option - spec: date|d=s =today - spec: items=s@ --multi option - spec: set=s% --multiple key=value pairs --- # version with verbose syntax name: myapp appspec: { version: 0.001 } class: App::Spec::Example::MyApp title: My Very Cool App options: - name: foo type: flag summary: Foo - name: verbose summary: be verbose type: flag multiple: true aliases: ["v"] - name: req summary: Some required flag required: true type: flag - name: number summary: integer option type: integer - name: number2 summary: integer option type: integer aliases: ["n"] - name: date type: string default: today aliases: ["d"] - name: items type: string multiple: true summary: multi option - name: set type: string multiple: true mapping: true summary: multiple key=value pairs
Builds a hash with the given hashref and fills in some defaults.
my %hash = $class->common($args);
Builds a hash from the dsl string
%dsl = $class->from_dsl("verbose|v+ --Be verbose");
Attributes which represent the ones from the spec.
To install App::Spec, copy and paste the appropriate command in to your terminal.
cpanm
cpanm App::Spec
CPAN shell
perl -MCPAN -e shell install App::Spec
For more information on module installation, please visit the detailed CPAN module installation guide.