zef搜索包括:$update
作为命名参数:
multi MAIN('search', Int :$wrap = False, :$update, *@terms ($, *@))
Run Code Online (Sandbox Code Playgroud)
但是,不能这样识别:
% 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]
Run Code Online (Sandbox Code Playgroud)
我在这里想念什么?我如何为此分配一个值$update
?
如果我自己运行此MAIN
候选者,它将起作用:
$ perl6 -e 'multi MAIN("search", Int :$wrap = False, :$update, *@terms ($, *@)) { say "foo" }' search --update
foo
Run Code Online (Sandbox Code Playgroud)
因此在我看来,有不止一个候选人匹配,这导致出现USAGE反馈消息。
命名参数仅用作平局决胜者,除非它们是强制性的(这使它们实际上是调度过程的一部分)。因此,解决方法可能是选出两个候选人:
multi MAIN('search', Int :$wrap = False, :$update!, *@terms ($, *@)) { ... }
multi MAIN('search', Int :$wrap = False, *@terms ($, *@)) { ... }
Run Code Online (Sandbox Code Playgroud)
?
归档时间: |
|
查看次数: |
120 次 |
最近记录: |