App::Spec::Tutorial - How to write an app with App::Spec::Run
See App::Spec::Argument for documentation and examples on how to define options and parameters.
You can generate a boilerplate with appspec:
appspec new --class App::Birthdays --name birthdays.pl
For documentation, look at appspec and App::AppSpec.
The smallest example would be the following app. It doesn't use subcommands.
use strict; use warnings; package App::Birthdays; use base 'App::Spec::Run::Cmd'; sub execute { my ($self, $run) = @_; my $date = $run->options->{date}; my $output = <<"EOM"; Birthdays $date: EOM $output .= "Larry Wall"; if ($run->options->{age}) { $output .= " (Age: unknown)"; } $output .= "\n"; $run->out($output); } package main; use App::Spec; App::Spec->read("$Bin/birthdays.yaml")->runner->run;
Short version:
name: birthdays.pl title: Show birthdays appspec: { version: '0.001' } class: App::Birthdays options: - date=s =today --Date - age --Show age
Long version:
name: birthdays.pl title: Show birthdays appspec: { version: '0.001' } class: App::Birthdays options: - name: date type: string default: today summary: Date - name: age type: flag summary: Show age
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.