首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Perl的App::Cmd创建应用程序级选项?

如何使用Perl的App::Cmd创建应用程序级选项?
EN

Stack Overflow用户
提问于 2010-08-13 00:37:00
回答 1查看 863关注 0票数 6

FMc更新

我在这个问题上悬赏悬赏,因为我对同样的问题感到困惑。要重新表述这个问题,您如何实现应用程序级选项(适用于整个程序,script.pl),而不是应用于单个命令的选项(本例中为search)。

原始问题

如何使用App::Cmd创建这样的接口

代码语言:javascript
复制
script.pl --config <file> search --options args

我能做到:

代码语言:javascript
复制
./script.pl search --options args
./script.pl search args
./script.pl search --options

我试图实现的是获得一个配置文件的选项,如下所示:

代码语言:javascript
复制
./script.pl --config file.conf search --options args

我已经看过cpan上的应用程序::Cmd::教程了,但到目前为止,我还没有任何运气让它开始工作。

EN

回答 1

Stack Overflow用户

发布于 2011-05-26 08:56:04

您可以在App::Cmd中指定全局选项,如下所示。我们需要三个文件:

script.pl

代码语言:javascript
复制
use Tool;
Tool->run;

Tool.pm

代码语言:javascript
复制
package Tool;
use strict; use warnings;
use base 'App::Cmd';

sub global_opt_spec {
    ['config=s' => "Specify configuration file"];
}

1;

Tool/Command/search.pm

代码语言:javascript
复制
package Tool::Command::search;
use strict; use warnings;
use base 'App::Cmd::Command';

sub opt_spec {
    ["option" => "switch on something"],
}

sub execute {
    my ($self, $opt, $args) = @_;

    warn "Running some action\n";
    warn 'Config file = ' . $self->app->global_options->{config}, "\n";
    warn 'Option      = ' . $opt->{option}, "\n";
}

1;

该示例演示如何定义全局选项并从search操作中访问它。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3473086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档