Config :: param.

Alles, was Sie mit Parametern für Ihr Programm (oder jemand anderem) tun möchten
Jetzt downloaden

Config :: param. Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • Perl Artistic License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Thomas Orgis
  • Website des Verlags:
  • http://thomas.orgis.org/

Config :: param. Stichworte


Config :: param. Beschreibung

Die grundlegende Aufgabe ist es, einige Beschreibung der angebotenen Parameter zu übernehmen und einen Hash-ref mit Werten für diese Parameter zurückgeben, von der Kommandozeile beeinflusst und / oder Konfigurationsdateien. Die einfache Schleife aus vielen Jahren sind jetzt über die umfassendste Lösung für ein param Raum Programm, dass mir bewusst bin, während immer noch die One-Shot-Nutzung über einen einzigen Funktionsaufruf und eine flache Beschreibung parameters.Config :: Param Griffe unterstützt Kommandozeilenparameter (etwas flexibel in Bezug auf die Anzahl des -, aber das Beharren auf dem Gleichheitszeichen in --name Wert =) definiert und Handhabungsstandardparameter zum Erzeugen von Nutzungsmeldungen nützlich und parst sowie Konfigurations files.command Zeilenparameter generiert processingProcess Befehlszeilenoptionen / Schalter / Parameter / ..., sei es kurz oder lang Stil, unterstützt Clustering von Short-Optionen. Interpretiert --parm = value / p = Wert mit der offensichtlichen Wirkung; Sets Option auf 1 (was wahr ist), wenn nur --option / o gegeben ist. obwohl auch etwas eingängig, aber eine Art von Standard bereits und logisch die Idee folgt, - wahr ist, ++ Option / + o den Wert auf 0 (false) gesetzt. Das Formular --parm Wert nicht, da keine einfache kugelsichere generische Art und Weise unterstützt zu tun, die über mich einfiel. Es ist das grundlegende Problem der Entscheidung, ob wir einen Parameterwert oder eine andere Befehlszeilendaten wie einen Dateinamen zu verarbeiten haben. Da dieses Problem weiterhin mit dem = in Zuordnung verwendet, wenn man eine Datei mit einem Namen der Ansicht, wie --i_look_like_an_option, was durchaus möglich ist, Param sieht auch Ausschau nach - als letztem Trennzeichen für die benannten Parameter Teil, der auch durchaus üblich Verhalten. Die Befehlszeilenargumente nach - Aufenthalt im Eingabefeld (in der Regel @ARGV) und können durch den Aufruf Programm verwendet werden. Die analysierten Parameter sowie die optionalen - entfernt werden; so, wenn Sie Ihre @ARGV beibehalten möchten, bieten nur ein copy.You Skalare haben kann, Hashes oder Arrays (Referenzen, natürlich) als Werte für die Parameter. Der Hash / Array-Typ ausgewählt ist, wenn Sie ein (anonym) hash / Array-Referenz liefern als Standard value.Hash Werte einen Schlüssel über Vorfixierung mit folgenden = vor dem tatsächlichen Wert eingestellt werden: --hashpar = name = WertA nette Funktion ist die Unterstützung der Betreiber. Statt --parm = Wert können Sie tun --parm. = Wert append etwas zu dem bestehenden Wert. Wenn -p die Kurzform von --parm ist, geschieht das gleiche durch -p. = Wert oder Speicher ein Zeichen, -p.value (aber nicht --parm.value, hier würde der Punktteil des Parameters in Betracht gezogen werden Name). So "--parm = a --parm = b -p.c." Ergibt den Wert von Parm ist "abc" .SYNOPSISJust das Modul verwenden, definieren Sie Ihre Parameter verwenden Config :: Param; # Die Definitionen in flachen Array # erinnern: Parameter help / h und config / I vorgegeben sind! mein @pardef = ( 'parm1', $ Voreinstellung1, 'a', 'Hilfetext für skalare 1', 'parm2', $ Voreinstellung2, 'b', 'Hilfetext für skalare 2', 'PARMA', \ @defaultA , 'A', 'Hilfetext für Array-A', 'parmH', \ @defaultH, 'H', 'Hilfetext für Hash-H', 'parmX', $ defaultX, '', Hilfetext für letzte ( Skalar)), und rufen Sie den Parser, $ parm_ref = Config :: Param :: get (@pardef); drucken "Wert des Parameters 'Parameter1': $ parm_ref -> {parm1} \ n"; drucken "Inhalt des Array 'PARMA': @ {$ parm_ref -> {PARMA}} \ n"; eventuell auch einige zusätzliche Konfiguration, mein% config = ( 'info' => 'Programm-Info-Text', 'Version' => 1.2.3 # möglicherweise mehr Konfigurations Schlüssel / Wert-Paare); $ Parm_ref = Config :: Param :: get (\% config @pardef) oder $ parm_ref = Config :: Param :: get (\% config \ @ pardef); oder $ parm_ref = Config :: Param :: get (\% config \ @ pardef, \ @ cmdline_args); Der komplizierteste Anruf ist dies, so dass nur Sinn, wenn Endaustrittsseite zu deaktivieren: $ config {noexit} = 1; # Oder nofinals $ parm_ref = Config :: Param :: get (\% config \ @ pardef, \ @ cmdline_args, $ errors); Dies wird eine Anzahl von Fehlern aufgetreten (schlechte Einrichtung, schlechte Kommandozeile args) zurückzukehren. Mit Standardkonfiguration würde die Routine nicht auf Fehler zurück, aber das Programm beenden. Fehler werden in jedem case.Finally zu STDERR erwähnt werden, können Sie eine Config :: Param-Objekt verwenden können, um zu tun, was Config :: Param :: get funktioniert: # entspricht # $ parm_ref = Config :: Param :: get (\% config \ @ pardef); my $ pars = Config :: Param-> new (\% config \ @pardef); $ Pars-> parse_args (\ @ ARGV); $ Pars-> use_config_files (); $ Pars-> apply_args (); $ Pars-> final_action (); $ Parm_ref = $ pars -> {param}; Produkt-Homepage


Config :: param. Zugehörige Software