[PERL]reference sur la methode d'un objet

Fermé
jesus144 Messages postés 35 Date d'inscription vendredi 2 avril 2004 Statut Membre Dernière intervention 31 janvier 2008 - 12 mars 2007 à 17:09
 un perleur - 31 juil. 2008 à 00:35
Bonjour,
lorsque l'on cré un thread, une solution est de faire
use threads;
threads->new( \&method, $arg1, $arg2,...);
Mon problème est que dans mon cas, il s'agit de lancer dans un thread la méthode d'un objet. Comment faire une reference sur la methode de l'objet (du genre \&(Obj->method() ) ) J'ai essayer pas mal de syntaxe qui me passait par la tête, mais j'y arrive pas...
Merci de votre aide!!!

3 réponses

up ça m'intéresse car je cherche également
0
Bonjour,

Tu peux utiliser une closure. En reprenant ton exemple, çà donnerait :

use threads;
threads->new( sub{$obj->method}, $arg1, $arg2,...);
0
Je corrige ma réponse précédente. Il ne faut pas oublier de faire passer les arguments d'appel de la closure à la méthode. L'exemple devient alors :

use threads;
threads->new( sub{$obj->method(@_)}, $arg1, $arg2,...);
0
ce n'est pas \&(Obj->method() ) qu'il fallai ecrire, mais [objet => 'methode' ]
0