Sto eliminando il post perché non sono stato consultato sulla censura / modifica.
Sto eliminando il post perché non sono stato consultato sulla censura / modifica.
Risposte:
Ecco un esempio usando 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;
Esempio di esecuzione:
$ p.p6 -w xyz -q def -r abc hello
{help => False, q => def, r => abc, w => xyz}
[hello]
@*ARGSda get-options(). Quindi gli argomenti non-opzioni vengono lasciati in @*ARGSseguito. Vedi risposta aggiornata
helpsu un valore predefinito pari a 0. Probabilmente sarebbe meglio usare un valore booleano: help => Falsepoiché l'opzione di aiuto viene in genere utilizzata per mostrare un messaggio di aiuto. Ho modificato la risposta in modo che helpsia un valore booleano.
Usa il MAINsub :
#!/usr/bin/env raku
use v6;
sub MAIN(:$these ="These", :$are="Are", :$params="Params") {
say "$these $are $params";
}
È possibile digitare questi parametri in qualsiasi ordine:
./command-line.p6 --are=well --these=those
those well Params
E catturerà anche qualsiasi parametro aggiuntivo, mostrandoti i parametri effettivi:
./command-line.p6 --are=well --these=those --not=this_one
Usage:
./command-line.p6 [--these=<Any>] [--are=<Any>] [--params=<Any>]
Se sei interessato solo ai parametri con un singolo trattino, avrai bisogno di GetOpt :: Long come indicato da Hakon