2016-01-26 26 views
11

Perl 6, MAIN aracılığıyla büyük yerleşik komut satırı ayrıştırma özelliğine sahiptir. Ancak, önemsiz gibi görünen bir sorunla karşılaştım, ama bunu çözemiyorum.Perl 6'da -n = 3 '-n 3' ile aynı şey nasıl yapılır?

Basit MAIN:

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

Sonra benim komut dosyası çağırabilirsiniz olarak:

$ ./test.p6 -n=1 

ya:

$ ./test.p6 --num=1 

Ama yapamam ile:

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

ya:

$ ./test.p6 --num 1 

hiçbir şans ile design document for MAIN geçti. Bu işi nasıl yapabilirim?

cevap

6

Bazı bilgiler: a reported bug var

. Bu hata raporunda belirtilmeyen, bununla ilgili daha fazlasını keşfederseniz, örneğin bir geçici çözüm bulursanız, lütfen rapora bir yorum eklemeyi düşünün.

Size kolaylık sağlamak için, burada MAIN: Usage does not print required type for positional params in MAIN ve fail to handle numbers as option name for MAIN için bulduğum diğer iki hata raporu vardır.

Bazı seçenekler:

Bir seçenekler modülünü kullanın. Belki hile Getopt::Tiny yapacak.

Yardımı düzeltin # 124664. Perl 6 (çoğunlukla) Perl 6'da yazılmıştır. Bence ham ana komut satırında mgs yazan ve bunları MAIN imza değişkenlerine bağlayan kod 20 satır veya process-cmd-args'dur.

İlgili konular