Usuwam post, ponieważ nie konsultowano mnie w sprawie cenzury / redakcji.
Usuwam post, ponieważ nie konsultowano mnie w sprawie cenzury / redakcji.
Odpowiedzi:
Oto przykład użycia 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;
Przykładowy przebieg:
$ p.p6 -w xyz -q def -r abc hello
{help => False, q => def, r => abc, w => xyz}
[hello]
@*ARGS
przez get-options()
. Zatem argumenty niezwiązane z opcjami zostają @*ARGS
później. Zobacz zaktualizowaną odpowiedź
help
domyślną wartość na 0. Prawdopodobnie lepiej byłoby użyć wartości logicznej: help => False
ponieważ opcja pomocy jest zwykle używana do wyświetlania komunikatu pomocy. Zredagowałem odpowiedź tak, że help
to boolean.
Użyj MAIN
sub :
#!/usr/bin/env raku
use v6;
sub MAIN(:$these ="These", :$are="Are", :$params="Params") {
say "$these $are $params";
}
Możesz wpisać te parametry w dowolnej kolejności:
./command-line.p6 --are=well --these=those
those well Params
I również złapie każdy dodatkowy parametr, pokazujący rzeczywiste parametry:
./command-line.p6 --are=well --these=those --not=this_one
Usage:
./command-line.p6 [--these=<Any>] [--are=<Any>] [--params=<Any>]
Jeśli interesują Cię parametry tylko z jednym myślnikiem, potrzebujesz GetOpt :: Long, jak wskazuje Hakon