Beat: Code referenzieren

Beitrag lesen

Struktur für Menu und Eingangsseite

my %menu = (
    1 => ['Html', 'Inhalte erstellen und bearbeiten', &html],
    2 => ['Html', 'Inhalte erstellen und bearbeiten', &html],
);

Im ersten Fall führst du die Funktion aus und weist das Resultat dem Array zu.
Im zweiten Fall speicherst du eine Referenz, ohne die Funktion auszuführen.
Die Funktion wird erst beim dereferenzieren ausgeführt.

Aufruf der Funktionen

#1
print $menu{1}->[2]

Nein, kein Funktionsaufruf, sondern schlicht zugriff auf das Arrayelement.

#2
print $menu{2}->[2]->();

  
Zugriff auf die Referenz im Array und Dereferenzierung derselben, führt die Funktion aus.  
  

> Was ist da jetzt der Unterschied,  
  
siehe oben...  
  
Bei Dispatch-Tabellen will man letzteres in aller Regel.  
  
mfg Beat

-- 

><o(((°>           ><o(((°>  

   <°)))o><                     ><o(((°>o  
Der Valigator leibt diese Fische