Spec-Zone .ru
спецификации, руководства, описания, API
Spec-Zone .ru
спецификации, руководства, описания, API
Библиотека разработчика Mac Разработчик
Поиск

 

Эта страница руководства для  версии 10.9 Mac OS X

Если Вы выполняете различную версию  Mac OS X, просматриваете документацию локально:

Читать страницы руководства

Страницы руководства предназначаются как справочник для людей, уже понимающих технологию.

  • Чтобы изучить, как руководство организовано или узнать о синтаксисе команды, прочитайте страницу руководства для страниц справочника (5).

  • Для получения дополнительной информации об этой технологии, ищите другую документацию в Библиотеке Разработчика Apple.

  • Для получения общей информации о записи сценариев оболочки, считайте Shell, Пишущий сценарий Учебника для начинающих.



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)

Сообщение о проблемах

Способ сообщить о проблеме с этой страницей руководства зависит от типа проблемы:

Ошибки содержания
Ошибки отчета в содержании этой документации к проекту Perl. (См. perlbug (1) для инструкций представления.)
Отчеты об ошибках
Сообщите об ошибках в функциональности описанного инструмента или API к Apple через Генератор отчетов Ошибки и к проекту Perl, использующему perlbug (1).
Форматирование проблем
Отчет, форматирующий ошибки в интерактивной версии этих страниц со ссылками на отзыв ниже.