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

topeg
 2010-03-10 23:01
#134462 #134462
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
falls es dich interessiert:

Erklärung der Begriffe:
- Befehl = Der Code den man selber geschrieben hat(der Teil hinter dem Hilfetext)
- GetOptions-String = Der string mit dem GetOptions die Kommandozeilenargumente identifiziert.
- Option = einzelnes Kommandozeilenargument bzw. der Wert der damit verknüpft ist.

Alle Befehle werden in %commands gespeichert. Als Schlüssel für den Hash dient der GetOptions-String als Wert ist eine Arrayreferenz enthalten. Der erste Wert der Arrayreferenz ist der Hilfetext, der zweite eine Referenz auf den Befehl und der dritte Eintrag ist zum steuern, wann der Code ausgeführt werden soll.

Beim Start arbeitet sich perl durch den Hash %commands, analysiert den GetOptions-String (Schlüssel) und setzt zu jedem GetOptions-Option eine Codereferenz, die ausgeführt wird, wenn die Option in der Kommandozeile auftaucht. Je nach dem was an der dritten Stelle in der Arrayreferenz in %commands steht ist die Codereferenz, die an GetOptions übergeben wird, entweder der auszuführende Befehl selber (indirekt), oder ein Kommando den Befehl zu @runn hinzu zu fügen (mit den entsprechenden Optionen wie sie im GetOptions-String definiert sind). Wenn GetOptions durch gelaufen ist wird @runn abgearbeitet und alle darin stehenden Befehle ausgeführt. @runn enthält Arrayreferenzen. An der ersten Stelle ist der Schlüssel zu %commands (GetOptions-String) alle weiteren sind die von der Kommandozeile gelesenen Optionen, die an die Funktion übergeben werden.

Das ganz ist ein klein wenig komplizierter um auch alle zusammengehörenden Parameter ein zu sammeln, aber ich wollte nur die grundsätzliche Funktionsweise beschreiben.

View full thread wer hat lust auf ein Spiel?