Salut @Todd. Je peux voir que vous avez été contrarié par les modifications des autres, probablement parce que vous n'êtes pas familier avec la façon dont SO fonctionne en ce qui concerne les modifications , par exemple en supprimant «merci» . Cependant, votre propre modification de votre question est en elle-même bouleversante pour les autres car elle dévalue le temps / l'effort de ceux qui vous ont répondu et de ceux qui utilisent SO. Pensez à me donner votre bénédiction pour rétablir votre question telle qu'elle était .
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;
@Todd Tous les arguments traités comme options sont supprimés de @*ARGSpar get-options(). Les arguments non-options sont donc laissés @*ARGSaprès. Voir la réponse mise à jour
Håkon Hægland
Il définit helpune valeur par défaut de 0. Il serait probablement préférable d'utiliser un booléen: help => Falsepuisque l'option d'aide est généralement utilisée pour afficher un message d'aide. J'ai édité la réponse telle qu'elle helpest booléenne.
Réponses:
Voici un exemple utilisant Getopt :: Long :
Exemple d'exécution:
la source
@*ARGS
parget-options()
. Les arguments non-options sont donc laissés@*ARGS
après. Voir la réponse mise à jourhelp
une valeur par défaut de 0. Il serait probablement préférable d'utiliser un booléen:help => False
puisque l'option d'aide est généralement utilisée pour afficher un message d'aide. J'ai édité la réponse telle qu'ellehelp
est booléenne.Utilisez le
MAIN
sous :Vous pouvez taper ces paramètres dans n'importe quel ordre:
Et attrapera également tout paramètre supplémentaire, vous montrant les paramètres réels:
Si vous n'êtes intéressé que par les paramètres avec un seul tiret, vous aurez besoin de GetOpt :: Long comme indiqué par Hakon
la source