Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2461 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  [PERL] declaration d'une globale

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PERL] declaration d'une globale

n°309691
circeedeva​lette
Posté le 14-02-2003 à 16:37:23  profilanswer
 

salut les amis
 
comment on fait pour declarer une globale en perl  
avec l'option 'use strict'
 
pour info, normalement j'utilise my $toto dans la fonction de haut niveau
mais là, je suis dans une sub et je veut declarer une variable qui soit visible depuis une autre sub
je ne peut pas la declarer avec un my comme enonce plus haut,
et si je ne declare pas ma variable le compilo gueule et ne veut pas executer mon code
(plus de pb sans le 'use strict' mais je prefere l'utiliser)
 
 
PS: j'ai declaré ma variable en 'our' mais  :non:  
- soit j'ai pas compris comme marche 'our'
- soit ca ne regle pas mon probleme
 
bien amicalement


Message édité par circeedevalette le 17-02-2003 à 09:16:09
mood
Publicité
Posté le 14-02-2003 à 16:37:23  profilanswer
 

n°309803
phenixl
Posté le 14-02-2003 à 17:53:49  profilanswer
 

circeedevalette a écrit :

salut les amis
 
comment on fait pour declarer une globale en perl  
avec l'option 'use strict'
 
pour info, normalement j'utilise my $toto dans la fonction de haut niveau
mais là, je suis dans une sub et je veut declarer une variable qui soit visible depuis une autre sub
je ne peut pas la declarer avec un my comme enonce plus haut,
et si je ne declare pas ma variable le compilo gueule et ne veut pas executer mon code
(plus de pb sans le 'use strict' mais je prefere l'utiliser)
 
 
PS: j'ai declaré ma variable en 'our' mais  :non:  
- soit j'ai pas compris comme marche 'our'
- soit ca ne regle pas mon probleme
 
bien amicalement  
 


 
Rien a faire sur Java mais bon...  
 
En perl les variables globales sont declarees comme suit :
 

Code :
  1. $mavariable;


 
A+

n°309964
Angel_Doog​las
Le dernier des humains
Posté le 14-02-2003 à 21:06:02  profilanswer
 

circeedevalette a écrit :

salut les amis
 
comment on fait pour declarer une globale en perl  
avec l'option 'use strict'
 
pour info, normalement j'utilise my $toto dans la fonction de haut niveau
mais là, je suis dans une sub et je veut declarer une variable qui soit visible depuis une autre sub
je ne peut pas la declarer avec un my comme enonce plus haut,
et si je ne declare pas ma variable le compilo gueule et ne veut pas executer mon code
(plus de pb sans le 'use strict' mais je prefere l'utiliser)
 
 
PS: j'ai declaré ma variable en 'our' mais  :non:  
- soit j'ai pas compris comme marche 'our'
- soit ca ne regle pas mon probleme
 
bien amicalement  
 


 
Deja ca ne va produire du code tres lisible, ensuite si tu veux l'utiliser dans une fonction, passe la en argument. Enfin si tu veux faire une globale, ne la place pas dans un bloc, en particulier un bloc de fonction.


---------------
You have the right to remain silent. You are warned that anything you say can will be taken down used as evidence against you///Il n'y a pas de théorie de l'évolution. Juste une liste d'espèces que Chuck Norris autorise à survivre.
n°311017
circeedeva​lette
Posté le 17-02-2003 à 09:24:56  profilanswer
 

phenixl a écrit :


 
Rien a faire sur Java mais bon...  
 


 
desolé, la section java est juste au dessus de la section perl dans le combobox est mon doigt a sans doute rippé

n°311020
circeedeva​lette
Posté le 17-02-2003 à 09:28:31  profilanswer
 

Angel_Dooglas a écrit :


 
Deja ca ne va produire du code tres lisible, ensuite si tu veux l'utiliser dans une fonction, passe la en argument. Enfin si tu veux faire une globale, ne la place pas dans un bloc, en particulier un bloc de fonction.


 
le pb c'est que je veux declarer des variables dans un "for"
 
for ($F=0;$F<=$Nombre_Module;$F++)
{
  my $Nom_Bouton1 = '$Checkbutton_'.$F;
}
 
mais de cette facon, le nom de mon bouton est inconnu en dehors de ma boucle for
 
PS : faudrait faire le return dans la boucle for mais j'aime pas trop

n°311045
Aricoh
gentil mais fo po pousser
Posté le 17-02-2003 à 10:44:58  profilanswer
 

circeedevalette a écrit :


 
le pb c'est que je veux declarer des variables dans un "for"
 
for ($F=0;$F<=$Nombre_Module;$F++)
{
  my $Nom_Bouton1 = '$Checkbutton_'.$F;
}
 
mais de cette facon, le nom de mon bouton est inconnu en dehors de ma boucle for
 
PS : faudrait faire le return dans la boucle for mais j'aime pas trop

Non, déclare ta variable $Nom_Bouton1 en dehors de toute fonction, au début de ton script Perl.
 
Je n'ai pas capté ta syntaxe là :
 

Code :
  1. my $Nom_Bouton1 = '$Checkbutton_'.$F;


 
On ne s'occupe plus du "my" vu que la var sera déclarée ailleurs mais c'est la suite qui m'interpelle, principalement '$Checkbutton_'.$F;
 
Au 1er passage de la boucle for, $F vaut 0 et $Nom_Bouton1 va recevoir une chaîne correspondant à "$Checkbutton_0", c'est bien ça que tu cherches à obtenir ?


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
n°311170
circeedeva​lette
Posté le 17-02-2003 à 13:18:02  profilanswer
 

Aricoh a écrit :

Non, déclare ta variable $Nom_Bouton1 en dehors de toute fonction, au début de ton script Perl.
 
Je n'ai pas capté ta syntaxe là :
 

Code :
  1. my $Nom_Bouton1 = '$Checkbutton_'.$F;


 
On ne s'occupe plus du "my" vu que la var sera déclarée ailleurs mais c'est la suite qui m'interpelle, principalement '$Checkbutton_'.$F;
 
Au 1er passage de la boucle for, $F vaut 0 et $Nom_Bouton1 va recevoir une chaîne correspondant à "$Checkbutton_0", c'est bien ça que tu cherches à obtenir ?


 
en fait, je veux utiliser le package JComboBox :
http://search.cpan.org/src/RCS/Tk- [...] orial.html
 
avec ce package on peut creer un combobox
$ComboBox = $MW -> JComboBox();
puis recuperer, la valeur selectionné dans le combobox
(en fait l'index, puis la valeur)
avec les methodes :
  my $index = $ComboBox -> getSelectedIndex();
  my $name  = $ComboBox -> getItemNameAt($index);

n°311177
Aricoh
gentil mais fo po pousser
Posté le 17-02-2003 à 13:26:18  profilanswer
 

circeedevalette a écrit :


 
en fait, je veux utiliser le package JComboBox :
http://search.cpan.org/src/RCS/Tk- [...] orial.html
 
avec ce package on peut creer un combobox
$ComboBox = $MW -> JComboBox();
puis recuperer, la valeur selectionné dans le combobox
(en fait l'index, puis la valeur)
avec les methodes :
  my $index = $ComboBox -> getSelectedIndex();
  my $name  = $ComboBox -> getItemNameAt($index);
 

si tu déclares toutes tes variables dédiées à tes objets Tk de manière globale (pas dans une fonction), tu n'auras pas de problèmes. Ce sont des objets, pour résumer au max des références. Donc, si tu veux modifier un objet via fonction, c'est sa référence qui sera modifiée au sein de la fonction, donc tout roule. SAUF si tu déclares ton objet dans la fonction.


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
n°311182
circeedeva​lette
Posté le 17-02-2003 à 13:41:50  profilanswer
 

Aricoh a écrit :

Non, déclare ta variable $Nom_Bouton1 en dehors de toute fonction, au début de ton script Perl.
 
Je n'ai pas capté ta syntaxe là :
 

Code :
  1. my $Nom_Bouton1 = '$Checkbutton_'.$F;


 
On ne s'occupe plus du "my" vu que la var sera déclarée ailleurs mais c'est la suite qui m'interpelle, principalement '$Checkbutton_'.$F;
 
Au 1er passage de la boucle for, $F vaut 0 et $Nom_Bouton1 va recevoir une chaîne correspondant à "$Checkbutton_0", c'est bien ça que tu cherches à obtenir ?


 
desolé c'est vrai que mon exemple ne marche pas
 
en fait, je veux utiliser le package JComboBox trouvé sur cpan :
http://search.cpan.org/src/RCS/Tk- [...] orial.html
 
avec ce package on peut creer un combobox
  $ComboBox = $MW -> JComboBox(-selectcommand =>sub{affiche();});
 
puis recuperer, la valeur selectionné dans le combobox
(en fait l'index, puis la valeur)
avec les methodes :
sub affiche
{
  my $index = $ComboBox -> getSelectedIndex();
  my $name  = $ComboBox -> getItemNameAt($index);
}
 
mon probleme, c'est que je veux créer un nombre indefini de combobox.  
ce nombre est le nb d'element d'un tableau affecté dans une fonction precedente
 
comme je ne connait pas le nombre d'element dans ce tableau au debut de mon programme, je ne peut pas declarer mes globales au debut
 


---------------
Tavernier! j'ai soif de la vie, qu'on m'en apporte
n°311190
circeedeva​lette
Posté le 17-02-2003 à 13:46:27  profilanswer
 

en fait, en meme temps que je te repondais j'ai trouvé ma solution
 
les jcombobox ont une option : -textVariable avec laquelle on peut  recuperer la valeur selectionné
 
du coup, je declare au debut de mon prog un tableau @Valeur
 
je fais ma boucle for
 
  for (my $k = 0;$k < 3;$k++)
  {
     $ComboBox = $OneReq_frame -> JComboBox(-selectcommand => sub{affiche();},
                                              -gap => '10',
                                              -relief => 'sunken',
                                              -textvariable => \$value[$k],
                                              -popuprelief => 'groove',
                                              -listbackground => 'white',
                                              -highlightthickness => 0,
                                              -choices => [qw/Suppression ReqPro Nouveau Scade/]
                                             ) -> pack(-side => 'left',-padx => 10);
 
  }
 
avec chaque combo qui remplit sa case correspondante dans le tableau @valeur
 
du coup, dans mon autre fonction il suffit de lire la bonne case de ce tableau


---------------
Tavernier! j'ai soif de la vie, qu'on m'en apporte

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  [PERL] declaration d'une globale

 

Sujets relatifs
[C] Declaration cyclique et fichiers .h > JE VAIS DEVENIR FOUPHP : Déclaration cookie
cgi de perl qui marche pas debutant )[Perl] itérer sur les valeurs d'un tableau de hash de hash...
Besoin d'aide en Programmation PerlPetit soucis en java / perl ...
[Perl] Comment ignorer la casse dans une comparaison ?Programme en perl !
déclaration avec "module"Déclaration des classes selon la forme de Coplien
Plus de sujets relatifs à : [PERL] declaration d'une globale


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)