Perl6:どうやってコマンドラインから混合パラメーターを読むのですか?


9

検閲/編集について相談を受けなかったので、投稿を削除しています。


例えば参照してください。Getoptの::ロング
ホーコンHægland

@Toddさん、こんにちは。あなたが他の人の編集に腹を立てているのを見ることができます、おそらくあなたが編集に関してSOどのように機能するの、たとえば「感謝」を編集することに慣れていないためでしょう。ただし、質問への回答は、回答した人とSOを使用する人の時間/労力を軽視しているため、質問を編集しただけでは他の人を怒らせます。質問を元の状態に戻すための祝福を私に与えることを検討してください。
raiph

回答:


9

Getopt :: Longの使用例を次に示します。

use v6;
use Getopt::Long;

my %opt = help => False, 'r=s' => "", 'q=s' => "", 'w=s' => "";
my %options = get-options(%opt).hash;
say %options;
say @*ARGS;

実行例:

$ p.p6  -w xyz -q def -r abc hello
{help => False, q => def, r => abc, w => xyz}
[hello]

@Toddオプションとして処理されるすべての引数は、@*ARGSによって削除されget-options()ます。したがって、オプション以外の引数は@*ARGS後で残されます。更新の答えを参照してください
ホーコンHægland

helpデフォルト値は0 に設定されます。おそらくhelp => Falseヘルプオプションはヘルプメッセージを表示するために使用されるため、ブール値を使用する方が良いでしょう。私はそれhelpがブール値であるような答えを編集しました。
ホーコンHægland

8

MAINsubを使用します。

#!/usr/bin/env raku

use v6;

sub MAIN(:$these ="These", :$are="Are", :$params="Params") {
    say "$these $are $params";
}

これらのパラメーターは任意の順序で入力できます。

./command-line.p6 --are=well --these=those
those well Params

また、追加のパラメーターをキャッチして、実際のパラメーターを表示します。

./command-line.p6 --are=well --these=those --not=this_one
Usage:
  ./command-line.p6 [--these=<Any>] [--are=<Any>] [--params=<Any>]

ダッシュが1つだけのパラメーターに関心がある場合は、Hakonが示すようにGetOpt :: Longが必要になります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.