首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MAIN中无法访问的命令行选项

MAIN中无法访问的命令行选项
EN

Stack Overflow用户
提问于 2019-05-05 16:51:07
回答 1查看 125关注 0票数 7

zef search包含:$update作为命名参数:

代码语言:javascript
复制
 multi MAIN('search', Int :$wrap = False, :$update, *@terms ($, *@))

然而,它并不是这样被认可的:

代码语言:javascript
复制
% zef search --update
Usage:
  /home/jmerelo/.rakudobrew/bin/../moar-2019.03.1/install/share/perl6/site/bin/zef [--wrap=<Int>] search [<terms> ...] -- Get a list of possible distribution candidates for the given terms
  /home/jmerelo/.rakudobrew/bin/../moar-2019.03.1/install/share/perl6/site/bin/zef [--version] -- Detailed version information
  /home/jmerelo/.rakudobrew/bin/../moar-2019.03.1/install/share/perl6/site/bin/zef [-h|--help]

这里我漏掉了什么?如何为此$update赋值

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-05 17:08:21

如果我单独运行这个MAIN候选者,它可以工作:

代码语言:javascript
复制
$ perl6 -e 'multi MAIN("search", Int :$wrap = False, :$update, *@terms ($, *@)) { say "foo" }' search --update
foo

因此,在我看来,有多个候选者匹配,这会导致出现使用反馈消息。

命名参数仅用作附加参数,除非它们是强制的(这实际上使它们成为调度过程的一部分)。因此,也许解决办法是让两个候选人:

代码语言:javascript
复制
multi MAIN('search', Int :$wrap = False, :$update!, *@terms ($, *@)) { ... }
multi MAIN('search', Int :$wrap = False,            *@terms ($, *@)) { ... }
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55990282

复制
相关文章

相似问题

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