[PERL]reference sur la methode d'un objet

jesus144 Messages postés 35 Statut Membre -  
 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!!!
Configuration: Linux
Firefox 1.5.0.7

3 réponses

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

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

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