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]
@*ARGS
da get-options()
. Quindi gli argomenti non-opzioni vengono lasciati in @*ARGS
seguito. Vedi risposta aggiornata
help
su un valore predefinito pari a 0. Probabilmente sarebbe meglio usare un valore booleano: help => False
poiché l'opzione di aiuto viene in genere utilizzata per mostrare un messaggio di aiuto. Ho modificato la risposta in modo che help
sia un valore booleano.
Usa il MAIN
sub :
#!/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