Thread wer hat lust auf ein Spiel? (61 answers)
Opened by conray at 2010-02-19 20:31

topeg
 2010-03-11 15:52
#134474 #134474
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
GetOpts hat nichts direkt mit %commands zu tun.

GetOpts nimmt einen Hash und sucht die Schlüssel in @ARGV (ist etwas komplizierter) Abhängig von den Werten zu den Schlüssel macht es verschiedene Sachen. Bei einer Skalarreferenz \$wert schreibt es den zur Option gehörenden Wert in den Skalar. Wenn es eine Hashreferenz \%hash ist schreibt es den Wert zur Option als Option => Wert. Ist es eine Arrayreferenz \@array hängt es den Wert an das Array an. Ist es Eine Codereferenz sub{...} oder \&funktion so wird der Code ausgeführt und der Wert an diesen übergeben.

Ich habe bei allen GetOpts-Werten Codereferenzen gesetzt, und nutze %commands um den richtigen Code zu einer Option aus zu führen (so ungefähr)
Das ganze ist aber etwas komplizierter, da ich den Zeitpunkt der Ausführung beeinflussen will und es mehr als eine Option zu einem Kommando geben kann. So führt GetOpts zwar Code aus wenn er auf eine Option stößt, sie schreibt aber nur Werte in das Array @runn, das nach GetOpts ab gearbeitet wird.

Die Erklärung dauert länger als das schreiben des Code :-)

View full thread wer hat lust auf ein Spiel?