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 :

Problème de pointeur sur une table de hashage


Sujet :

Langage Perl

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Problème de pointeur sur une table de hashage
    Bonjour,

    Je vous expose mon problème : Je suis actuellement affairé à programmer une application en Perl/Gtk2. Afin de controler l'interface graphique, je stocke les références aux widgets dans une table de hashage. Comment faire pour passer en argument à une fonction une 'référence' de cette table ?

    Un petit exemple pour être plus clair (Ce code n'est pas fonctionnel, il n'est là que pour exemple):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $window->{'Main} = Gtk2::Window->new('toplevel'}
    &AddLabel(\$window->{'Main'});
     
    sub AddLabel ($) {
      ($parent) = @_;
      $$parent->{'Label'} = Gtk2::Label->new();
    }
    Ce que je souhaiterais, c'est :
    1) Passer le pointeur sur $window->{'Main'} à ma fonction.
    2) Retrouver ma référence à mon nouveau widget dans le hash $window->{'Main'}->{'Label'}

    Mais non ! Jai bien fouiné un peux partout et sur bon nombre de site, apparement personne n'a eu ce problème.

    Merci pour votre aide.

  2. #2
    Membre chevronné
    Avatar de Woufeil
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 1 076
    Points : 2 004
    Points
    2 004
    Par défaut
    Salut !

    Voyons, raisonnons un peu. $window->{'Main'}, c'est quoi ? Un scalaire, comme l'indique le $ au début. Précisons un peu plus, c'est même une référence, puisque cela contient le retour d'un constructeur. En fait, c'est une référence vers une table de hachage.
    Donc en fait, ton code essaye de passer une référence à une référence vers une tabke de hachage à la fonction AddLabel !

    Passe lui seulement $window->{'Main'}, et ton code fonctionnera.

    Oh, simple nquestion de vocabulaire, évite le mot pointeur en Perl, préfère référence
    "En essayant continuellement, on finit par réussir. Donc : plus ça rate, plus on a de chances que ça marche" (devise Shadock)
    Application :

    ainsi qu'à regarder la avant de poser une question.

    La rubrique Perl recrute, contactez-moi.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Problème de pointeur sur une table de hashage
    S'uis vraiment bête, j'avais 'presque' tout essayé, sauf ça !!!

    Merci beaucoup pour cette réponse rapide.

    Woufeil += 1

  4. #4
    Membre chevronné
    Avatar de Woufeil
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 1 076
    Points : 2 004
    Points
    2 004
    Par défaut
    Citation Envoyé par nicdesf
    Woufeil += 1
    Rhô c'est moche ça : Woufeil++ plutôt !

    Et oui, le codeur Perl est flemmard, et là il y a gain de 1 caractère, et sans compter les espaces !
    Larry Wall serait fier de moi
    "En essayant continuellement, on finit par réussir. Donc : plus ça rate, plus on a de chances que ça marche" (devise Shadock)
    Application :

    ainsi qu'à regarder la avant de poser une question.

    La rubrique Perl recrute, contactez-moi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de filtre sur une table
    Par bilal_ini dans le forum Bases de données
    Réponses: 9
    Dernier message: 18/07/2019, 07h35
  2. [WD 12] Problème de tri sur une table
    Par L.Lemarchand dans le forum WinDev
    Réponses: 7
    Dernier message: 26/06/2008, 00h00
  3. Probléme de Filtre sur une Table
    Par souminet dans le forum Débuter
    Réponses: 1
    Dernier message: 28/04/2008, 11h34
  4. Probléme de concurrence sur une table
    Par D_light dans le forum Administration
    Réponses: 2
    Dernier message: 03/03/2008, 13h14
  5. Problème de pointeur sur une fonction
    Par CodeurNé dans le forum C
    Réponses: 4
    Dernier message: 03/10/2007, 22h45

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