2016-01-26 3 views
11

Perl 6には、MAINを介してコマンドライン解析機能が組み込まれています。しかし、私は些細な問題に直面しましたが、私はそれを理解できません。`-n = 3`をPerl 6で` -n 3`と同じようにするには?

シンプルMAIN

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

それから私のように私のスクリプトを呼び出すことができます。

$ ./test.p6 -n=1 

か:

$ ./test.p6 --num=1 

しかし、とすることはできません。

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

か:

$ ./test.p6 --num 1 

私は運でdesign document for MAINを通り抜けました。どうすればこの作品を作れますか?

答えて

6

いくつかの情報:

a reported bugです。このバグレポートに記載されていない詳細について知りたければ、回避策を見つけるなど、レポートにコメントを追加することを検討してください。

あなたの便宜のために、私がMAINで見つけたその他の2つの現存するバグレポートがあります:Usage does not print required type for positional params in MAINfail to handle numbers as option name for MAINです。

一部のオプション:

オプションモジュールを使用してください。多分Getopt::Tinyがそのトリックを行うでしょう。

ヘルプ修正#124664 Perl 6は(主に)Perl 6で書かれています。私は、メインのメインコマンドライン引数をMAINし、MAINのシグネチャ変数にバインドするコードは、process-cmd-argsの20行程度だと思います。

関連する問題