2016-01-26 13 views
11

Perl 6 ma świetne wbudowane przetwarzanie wiersza poleceń przez MAIN. Jednak stanąłem przed problemem, który wydaje się trywialny, ale nie mogę tego zrozumieć.Jak ustawić `-n = 3` jako` -n 3` w Perlu 6?

Prosty MAIN:

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

Wtedy mogę nazwać mój skrypt jako:

$ ./test.p6 -n=1 

lub:

$ ./test.p6 --num=1 

ale nie może z:

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

czyli

$ ./test.p6 --num 1 

Przeszedłem przez design document for MAIN bez powodzenia. Jak mogę to sprawić?

Odpowiedz

6

Niektóre info:

To a reported bug. Jeśli dowiesz się więcej na ten temat, który nie jest wymieniony w tym raporcie o błędzie, np. Znajdź obejście, rozważ dodanie komentarza do raportu.

Dla twojej wygody, oto dwa pozostałe istniejące raporty błędów, które znalazłem dla MAIN: Usage does not print required type for positional params in MAIN i fail to handle numbers as option name for MAIN.

Niektóre opcje:

Skorzystaj z modułu opcji. Może Getopt::Tiny załatwi sprawę.

Pomoc naprawić # 124664. Perl 6 jest (przeważnie) napisany w Perlu 6. Myślę, że kod, który niszczy surową główną linię poleceń i wiąże je ze zmiennymi sygnaturowymi MAIN, to 20 linii lub tak w process-cmd-args.

Powiązane problemy