App::CLI man page on MacOSX

Man page or keyword search:  
man Server   23457 pages
apropos Keyword Search (all sections)
Output format
MacOSX logo
[printable version]

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)
[top]

List of man pages available for MacOSX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net