bin mal wieder über diese Dinge gestolpert, hoppla, das ist mir nicht ganz klar, 2 Varianten:
Nein! Das sind keine zwei Varianten, sondern zwei völlig unterschiedliche Dinge.
[code lang=perl]
Struktur für Menu und Eingangsseite
my %menu = (
1 => ['Html', 'Inhalte erstellen und bearbeiten', &html],
Hier rufst du die Funktion html auf und weist dem 3. Arraywert den Wert zu, den die Funktion zurück gibt.
2 => ['Html', 'Inhalte erstellen und bearbeiten', &html],
und hier weist du dem dritten Wert die Referenz auf die Funktion zu.
Aufruf der Funktionen
#1
print $menu{1}->[2]
Das ist nicht der Aufruf der Funktion, sondern der Rückgabewert.
#2
print $menu{2}->[2]->();
Was ist da jetzt der Unterschied, spielt die Perlversion eine Rolle? Auf meiner Kiste ist 5.6.1, da geht Beides.
"Gehen" tut natürlich beides, es ist nur etwas völlig unterschiedliches.
Struppi.