Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

app::cli(3) [osx man page]

App::CLI(3)						User Contributed Perl Documentation					       App::CLI(3)

NAME
App::CLI - Dispatcher module for command line interface programs SYNOPSIS
package MyApp; use base 'App::CLI'; # the DISPATCHER of your App # it's not necessary putting the dispather # on the top level of your App package main; MyApp->dispatch; # call dispather in where you want package MyApp::List; use base qw(App::CLI::Command); # any (SUB)COMMAND of your App use constant options => qw( "h|help" => "help", "verbose" => "verbose", 'n|name=s' => 'name', ); use constant subcommands => qw(User Nickname type); # if you want subcommands # automatically dispatch to subcommands # when invoke $ myapp list [user|nickname|--type] # note 'type' lower case in first char # is subcommand of old genre which is deprecated sub run { my ($self, @args) = @_; print "verbose" if $self->{verbose}; my $name = $self->{name}; # get arg following long option --name if ($self->{help}) { # if $ myapp list --help or $ $ myapp list -h # just only output PODs } else { # do something when imvoking $ my app list # without subcommand and --help } } package MyApp::List::User; use base qw(App::CLI::Command); use constant options => ( "h|help" => "help", ); sub run { my ($self,@args) = @_; # code for listing user } pakcage MyApp::List::Nickname; use base qw(App::CLI::Command); use constant options => ( "sort=s" => "sort", ); sub run { my ($self,@args) = @_; # code for listing nickname } package MyApp::List::type; # old genre of subcommand could not be cascading infinitely use base qw(MyApp::List); # should inherit its parents command sub run { my ($self, @args); # run to here when invoking $ myapp list --type } package MyApp::Help; use base 'App::CLI::Command::Help'; use constant options => ( 'verbose' => 'verbose', ); sub run { my ($self, @arg) = @_; # do something $self->SUPER(@_); # App::CLI::Command::Help would output PDOs of each command } DESCRIPTION
"App::CLI" dispatches CLI (command line interface) based commands into command classes. It also supports subcommand and per-command options. get_opt([@config], %opt_map) give options map, process by Getopt::Long::Parser interface of dispatcher cmd_map($cmd) find package name of subcommand in constant %alias if it's finded, return ucfirst of the package name, otherwise, return ucfirst of $cmd itself. get_cmd($cmd, @arg) return subcommand of first level via $ARGV[0] SEE ALSO
App::CLI::Command Getopt::Long AUTHORS
Chia-liang Kao <clkao@clkao.org> Cornelius Lin <cornelius.howl@gmail.com> shelling <navyblueshellingford@gmail.com> COPYRIGHT
Copyright 2005-2006 by Chia-liang Kao <clkao@clkao.org>. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See <http://www.perl.com/perl/misc/Artistic.html> perl v5.16.2 2010-12-04 App::CLI(3)

Check Out this Related Man Page

App::CLI::Command(3)					User Contributed Perl Documentation				      App::CLI::Command(3)

NAME
App::CLI::Command - Base class for App::CLI commands SYNOPSIS
package MyApp::List; use base qw(App::CLI::Command); use constant options => ( 'verbose' => 'verbose', 'n|name=s' => 'name', ); sub run { my ( $self, $arg ) = @_; print "verbose" if $self->{verbose}; my $name = $self->{name}; # get arg following long option --name # any thing your want this command do } # See App::CLI for information of how to invoke (sub)command. DESCRIPTION
subcommand() return old genre subcommand of $self; cascading() return instance of cascading subcommand invoked if it was listed in your constant subcommands. cascadable() return package name of subcommand if the subcommand invoked is in you constant subcommands otherwise, return undef brief_usage ($file) Display an one-line brief usage of the command object. Optionally, a file could be given to extract the usage from the POD. usage ($want_detail) Display usage. If $want_detail is true, the "DESCRIPTION" section is displayed as well. loc_text $text Localizes the body of (formatted) text in $text, and returns the localized version. filename Return the filename for the command module. SEE ALSO
App::CLI Getopt::Long AUTHORS
Chia-liang Kao <clkao@clkao.org> Cornelius Lin <cornelius.howl@gmail.com> shelling <navyblueshellingford@gmail.com> COPYRIGHT
Copyright 2005-2006 by Chia-liang Kao <clkao@clkao.org>. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See <http://www.perl.com/perl/misc/Artistic.html> perl v5.16.2 2010-12-02 App::CLI::Command(3)
Man Page