[PERL]reference sur la methode d'un objet

jesus144 Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   -  
 un perleur -
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!!!
A voir également:

3 réponses

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

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

use threads;
threads->new( sub{$obj->method}, $arg1, $arg2,...);
0
cricri
 
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
un perleur
 
ce n'est pas \&(Obj->method() ) qu'il fallai ecrire, mais [objet => 'methode' ]
0