Cześć @Todd. Widzę, że denerwujesz się modyfikacjami innych osób, prawdopodobnie dlatego, że nie wiesz, jak działa SO w odniesieniu do edycji , na przykład edytując „dzięki” . Jednak twoja własna edycja twojego pytania sama denerwuje innych, ponieważ dewaluuje czas / wysiłek tych, którzy odpowiedzieli ci i innych, którzy używają SO. Proszę, rozważ udzielenie mi błogosławieństwa, aby przywrócić twoje pytanie tak, jak było .
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 Wszystkie argumenty przetwarzane jako opcje są usuwane @*ARGSprzez get-options(). Zatem argumenty niezwiązane z opcjami zostają @*ARGSpóźniej. Zobacz zaktualizowaną odpowiedź
Håkon Hægland
Ustawia helpdomyślną wartość na 0. Prawdopodobnie lepiej byłoby użyć wartości logicznej: help => Falseponieważ opcja pomocy jest zwykle używana do wyświetlania komunikatu pomocy. Zredagowałem odpowiedź tak, że helpto boolean.
Odpowiedzi:
Oto przykład użycia Getopt :: Long :
Przykładowy przebieg:
źródło
@*ARGS
przezget-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, żehelp
to boolean.Użyj
MAIN
sub :Możesz wpisać te parametry w dowolnej kolejności:
I również złapie każdy dodatkowy parametr, pokazujący rzeczywiste parametry:
Jeśli interesują Cię parametry tylko z jednym myślnikiem, potrzebujesz GetOpt :: Long, jak wskazuje Hakon
źródło