Если я запускаю этот MAIN
кандидат сам по себе, он работает:
$ perl6 -e 'multi MAIN("search", Int :$wrap = False, :$update, *@terms ($, *@)) { say "foo" }' search --update
foo
, поэтому мне кажется, что существует более одного подходящего кандидата, и это приводит к появлению сообщения обратной связи USAGE.
Именованные параметры используются только в качестве прерывателей, если только они не сделаны обязательными (что делает их фактически частью процесса отправки).Поэтому, возможно, решение состоит в том, чтобы сделать двух кандидатов:
multi MAIN('search', Int :$wrap = False, :$update!, *@terms ($, *@)) { ... }
multi MAIN('search', Int :$wrap = False, *@terms ($, *@)) { ... }
?