Hallo @Todd. Ich kann sehen, dass Sie von den Änderungen anderer verärgert waren, vermutlich weil Sie nicht wissen, wie SO in Bezug auf Änderungen funktioniert , z. B. wenn Sie "Danke" herausarbeiten . Ihre eigene Bearbeitung Ihrer Frage ist jedoch selbst für andere ärgerlich, da sie die Zeit / Mühe derer, die Ihnen geantwortet haben, und anderer, die SO verwenden, entwertet. Bitte erwägen Sie, mir Ihren Segen zu geben, um Ihre Frage so wie sie war wieder aufzunehmen .
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 Alle Argumente , die als Optionen verarbeitet werden , werden von entfernt @*ARGSdurch get-options(). Daher bleiben @*ARGSnachträglich Argumente ohne Optionen übrig . Siehe aktualisierte Antwort
Håkon Hægland
Es wird helpein Standardwert von 0 festgelegt. Wahrscheinlich ist es besser, einen Booleschen Wert zu verwenden, help => Falseda die Hilfeoption normalerweise zum Anzeigen einer Hilfemeldung verwendet wird. Ich habe die Antwort so bearbeitet, dass sie helpboolesch ist.
Antworten:
Hier ist ein Beispiel mit Getopt :: Long :
Beispiellauf:
quelle
@*ARGS
durchget-options()
. Daher bleiben@*ARGS
nachträglich Argumente ohne Optionen übrig . Siehe aktualisierte Antworthelp
ein Standardwert von 0 festgelegt. Wahrscheinlich ist es besser, einen Booleschen Wert zu verwenden,help => False
da die Hilfeoption normalerweise zum Anzeigen einer Hilfemeldung verwendet wird. Ich habe die Antwort so bearbeitet, dass siehelp
boolesch ist.Verwenden Sie das
MAIN
Sub :Sie können diese Parameter in beliebiger Reihenfolge eingeben:
Außerdem werden zusätzliche Parameter erfasst, die Ihnen die tatsächlichen Parameter anzeigen:
Wenn Sie nur an Parametern mit einem einzigen Strich interessiert sind, benötigen Sie GetOpt :: Long, wie von Hakon angegeben
quelle