Ich lösche den Beitrag, da ich nicht zur Zensur / Bearbeitung konsultiert wurde.
Ich lösche den Beitrag, da ich nicht zur Zensur / Bearbeitung konsultiert wurde.
Antworten:
Hier ist ein Beispiel mit 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;
Beispiellauf:
$ p.p6 -w xyz -q def -r abc hello
{help => False, q => def, r => abc, w => xyz}
[hello]
@*ARGS
durch get-options()
. Daher bleiben @*ARGS
nachträglich Argumente ohne Optionen übrig . Siehe aktualisierte Antwort
help
ein Standardwert von 0 festgelegt. Wahrscheinlich ist es besser, einen Booleschen Wert zu verwenden, help => False
da die Hilfeoption normalerweise zum Anzeigen einer Hilfemeldung verwendet wird. Ich habe die Antwort so bearbeitet, dass sie help
boolesch ist.
Verwenden Sie das MAIN
Sub :
#!/usr/bin/env raku
use v6;
sub MAIN(:$these ="These", :$are="Are", :$params="Params") {
say "$these $are $params";
}
Sie können diese Parameter in beliebiger Reihenfolge eingeben:
./command-line.p6 --are=well --these=those
those well Params
Außerdem werden zusätzliche Parameter erfasst, die Ihnen die tatsächlichen Parameter anzeigen:
./command-line.p6 --are=well --these=those --not=this_one
Usage:
./command-line.p6 [--these=<Any>] [--are=<Any>] [--params=<Any>]
Wenn Sie nur an Parametern mit einem einzigen Strich interessiert sind, benötigen Sie GetOpt :: Long, wie von Hakon angegeben