Perl tk

Résolu
Jamie Mac-Uloth -  
 Jamie Mac-Uloth -
Bonjour,

Je débute (jour zéro) en PERL TK, je n'arrive pas à trouver comment en cliquant sur un bouton, je peux modifier une variable.

Par exemple:

my $toto = 0;

Je veux que sur un clic bouton $toto = 1. J'utiliserai ensuite la valeur de toto pour que mon modèle face telle ou telle action.

Sur le net je ne vois que des exemples avec des appels de fonctions comme

$mw->Button(-text => "Done", -command => \&uneFonction)->pack;
Mais je ne vois pas par exemple en utilisant cette syntaxe comment faire que si uneFonction retourne $p_toto = 1 mettons, et ben que $toto récupère $p_toto.

Merci pour votre aide!

2 réponses

  1. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    Salut Jamie Mac-Uloth,

    Si ta fonction est aussi simple que cela, tu peux l'insérer dans le code d'initialisation du bouton, au lieu de mettre une référence sur une fonction nommée à implémenter ailleurs.

    Quelque chose comme cela :

    $mw->Button(-text => "Done", -command => sub { $toto = 1; })->pack; 


    Dal
    0
  2. Jamie Mac-Uloth
     
    Mais en fait oui, tout à fait. C'est juste que je ne savais pas que par défaut en Perl, les variables étaient des variables globales, vues dans une sub fonction. Cela résout mon problème!!
    Merci beaucoup :)
    0
    1. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
       
      Les variables Perl sont globales si elles sont déclarées dans un scope global.

      Si elles sont déclarées dans une sub, leur portée est limitée à la sub.
      0
      1. Jamie Mac-Uloth > [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Yes! Merci pour ces éclaircissements en tout cas Dal
        0