IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Pointeur de fonction


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 4
    Par défaut Pointeur de fonction
    re-Bonjour à tous,

    C'est toujours le même développeur C qui s'essaie à du PERL qui vient demander de l'aide ...

    J'essaie de jouer avec les pointeurs de fonctions.

    Voici ce qui marche :

    dans mon Fichier 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     ref_essai = \&DisplayHelp;
     &$ref_essai();
     
    #... et plus loin dans le fichier...
     
    sub DisplayHelp
    {
     print "aide en ligne";
    }
    Ce qui ne marche pas :

    dans mon Fichier 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    Fichier2::SetHelpRoutine(\&DisplayHelp);
     
    sub DisplayHelp
    {
     print "aide en ligne";
    }
    dans mon Fichier 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    my $ref_help_routine;
     
    sub SetHelpRoutine
    {
        $ref_help_routine = @_;
    }
     
    #...puis ici j'appelle la routine en faisant : 
    &$ref_help_routine();
    [/i]

    Et à l'exécution j'ai l'erreur suivante : Undefined subroutine &main::1 called

    Merci beaucoup encore une fois !

    Pierre

  2. #2
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Tu fais un "require Fichier2.pl;" dans Fichier1 j'imagine ? Alors imagine ce qui se passe : tu exécute Fichier2 avant Fichier1, donc "&$ref_help_routine();" est effectué avant qu'une quelconque routine soit affecté à $ref_help_routine()... D'où l'erreur, probablement, à moins que ce ne soit tout à fait autre chose (tu ne fournis pas assez de détail pour qu'on en soit tout à fait sûr, ce qui est sûr c'est que ce que tu fais est incorrect, mais ce n'est peut-être pas la seule erreur)!

    Je ne sais pas ce que tu cherches à faire, mais ce n'est sûrement pas ça ?

    --
    Jedaï

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 4
    Par défaut confus...
    Je voulais affecter un pointeur de fonction... et ça marche maintenant... j'ai un peu honte d'avouer... J'ai oublié les parenthèses lors de la récupération des paramètres d'entrée de ma routine !
    $param = @_;

    au lieu de

    ($param) = @_;

    Du coup, je n'étais pas en contexte de liste et je récupérais le nombre d'arguments (1, d'ou l'erreur Unknow routine main::1) au lieux de l'adresse de la routine...

    Encore désolé du dérangement

Discussions similaires

  1. opengl et pointeur de fonction
    Par Oldhar dans le forum C
    Réponses: 5
    Dernier message: 06/11/2003, 23h56
  2. Declaration de fonction retournant un pointeur sur fonction
    Par pseudokifaitladifférence dans le forum C
    Réponses: 5
    Dernier message: 11/08/2003, 19h37
  3. Matrice de pointeurs de fonctions
    Par sebduth dans le forum C
    Réponses: 15
    Dernier message: 18/07/2003, 14h03
  4. [Kylix] Pointeur de fonctions
    Par _dack_ dans le forum EDI
    Réponses: 1
    Dernier message: 03/07/2003, 10h17
  5. pointeur de fonction
    Par kardath dans le forum C
    Réponses: 4
    Dernier message: 28/12/2002, 14h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo