Подтвердить что ты не робот

Как сделать `-n = 3` таким же, как` -n 3` в Perl 6?

Perl 6 имеет отличный встроенный синтаксический анализ командной строки через MAIN. Однако я столкнулся с проблемой, которая кажется тривиальной, но я не могу понять.

Простой MAIN:

sub MAIN(Int :n(:$num)) {
    say "You passed: " ~ $num;
}

Затем я могу назвать свой script следующим:

$ ./test.p6 -n=1

или

$ ./test.p6 --num=1

Но не может:

$ ./test.p6 -n 1  # or even -n1

или

$ ./test.p6 --num 1

Я прошел через проектный документ для MAIN без везения. Как я могу сделать эту работу?

4b9b3361

Ответ 1

Некоторая информация:

Это сообщенная ошибка. Если вы узнаете больше об этом, о чем не упоминается в этом отчете об ошибке, например, найдите обходной путь, попробуйте добавить комментарий к отчету.

Для вашего удобства, вот два других существующих отчета об ошибках, которые я нашел для MAIN: Использование не печатает требуемый тип для позиционных параметров в MAIN и не обрабатывает числа как имя параметра для MAIN.

Некоторые параметры:

Используйте модуль параметров. Возможно, Getopt:: Tiny сделает трюк.

Исправить ошибку # 124664. Perl 6 (в основном) написан на Perl 6. Я думаю, что код, который обрабатывает основные аргументы командной строки и связывает их с MAIN сигнатурами подписи, составляет 20 строк или около того в process-cmd- арг.