gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 15:04:36 25 4
gpt4 key购买 nike

更新自 FMc

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

原问题

我如何使用 App::Cmd创建这样的界面

script.pl --config <file> search --options args

?

我可以:
./script.pl search --options args
./script.pl search args
./script.pl search --options

我想要实现的是为配置文件获取一个选项,如下所示:
./script.pl --config file.conf search --options args

我看过 App::Cmd::Tutorial在 cpan 上,但到目前为止我还没有运气让它工作。

最佳答案

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

脚本.pl :

use Tool;
Tool->run;

工具.pm :
package Tool;
use strict; use warnings;
use base 'App::Cmd';

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

1;

工具/命令/search.pm :
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 操作中访问它。

关于perl - 您如何使用 Perl 的 App::Cmd 创建应用程序级选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3473086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com