Thread Switch Syntax Fehler?
(6 answers)
Opened by jgeier at 2009-05-30 21:13 2009-05-30T20:23:43 jgeier Klar funktioniert es. ;) Quote In dem hash werden Subroutinen gespeichert. Mit $switch{$ftest} holst du die entsprechende subroutine heraus. Da es aber letztendlich nur eine Referenz auf eine Subroutine ist, muss du mit dem pfeil "->" dereferenzieren. Und um die Funktion aufzurufen musst du dann leere Klammern hinten anhängen ()" Ist das gleiche wie bei einen normalen Funktionsaufruf wie print("hallo") Nur da du dereferenzieren musst kannst du die klammern halt nicht weg lassen. Der einzige hacken ist wenn du ein Default wert anbieten musst. Dann musst du praktisch vorher prüfen ob der key überhaupt existiert und wenn nicht etwas anderes ausführen. Also z.B. so. Code (perl): (dl
)
1 2 3 4 5 6 if ( exists $switch{$key} ) { $switch{$key}->() } else { # hier der code für default } Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
|