Perl tk

Résolu/Fermé
Jamie Mac-Uloth - 17 janv. 2017 à 13:42
 Jamie Mac-Uloth - 18 janv. 2017 à 12:11
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

[Dal] Messages postés 5927 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 4 octobre 2022 1 015
Modifié par [Dal] le 17/01/2017 à 17:40
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
Jamie Mac-Uloth
18 janv. 2017 à 11:34
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
[Dal] Messages postés 5927 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 4 octobre 2022 1 015
18 janv. 2017 à 12:09
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
Jamie Mac-Uloth > [Dal] Messages postés 5927 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 4 octobre 2022
18 janv. 2017 à 12:11
Yes! Merci pour ces éclaircissements en tout cas Dal
0