Bonjour,
Dans mon script j'utilise un hash qui ressemble à ceci :
La valeur associée à la clé de ce hash correspond donc à un tableau anonyme contenant une référence vers une fonction ainsi qu'un autre tableau anonyme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 my %items = ( T_ENV() => [ \$this->$_showEnv, [ O_NAME, O_SITE ] ], O_SITE() => [ \&showSite, [ O_NAME ] ], O_HOST() => [ \&showHost, [ O_NAME, O_SITE, O_TYPE ] ], O_CELL() => [ \&showCell, [ O_NAME, O_SITE, O_TYPE, O_HOST ] ], O_APPLI() => [ \&showApp, [ O_NAME, O_SITE, O_TYPE, O_CELL, O_HOST, O_NODES, O_STATUS, O_DETAIL, O_FILE_SERVING, O_MESA_RESTART, O_MESA_RIPPLE, O_RUNNING, O_START_ON_BOOT, O_SINGLE, O_SUPERVISED, O_STOP_EXPIRED ] ], O_EAR() => [ \&showEAR, [ O_NAME, O_SITE, O_APPLI ] ], );
C'est la référence vers la fonction qui me pose problème (première ligne). Cela fonctionnait avant que cette fonction ne devienne une méthode d'objet (lignes suivantes), quelle syntaxe peut me permettre de retrouver le même fontionnement qu'avant ?
Merci d'avance pour votre aide.
Complément d'infos : actuellement cette syntaxe fonctionne mais la méthode est appelée dès la déclaration du hash. De plus cet appel plante puisqu'aucun paramètre n'est passé à la méthode.
L'appel est fait par la suite avec la ligne suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part &{$items{$options->{+O_ITEM}}->[0]}($context, $appConfig, $infraConfig, $options);
Partager