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

  FORUM HardWare.fr
  Programmation

  [Perl] variables locales et cie...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Perl] variables locales et cie...

n°113649
impulse
Posté le 18-03-2002 à 16:06:17  profilanswer
 

hi.
 
Je voudrais utiliser une variable declaree dans une sub dans une autre sub (appelée a partir de la 1ere sub). Un truc ds le genre :
 
use strict;
...
 
sub affect
{
  my $toto = "hello world !";
  print ();
}
 
sub print
{
  print $toto;
}
 
QQun pourrait m'expliquer comment faire ?
 
merci.
 
hihi :D

mood
Publicité
Posté le 18-03-2002 à 16:06:17  profilanswer
 

n°113651
deepcore
Posté le 18-03-2002 à 16:10:52  profilanswer
 

Si mes souvenir sont bon, tu déclares ta variable en "local" au lieu de "my" et elle sera visible par les sub que tu appéleras de la fonction où tu a déclaré ta variable. Mais le plus propre, c'est quand même de passer par paramètre.


---------------
"Si ça peut déconner, ça va déconner..."
n°113655
impulse
Posté le 18-03-2002 à 16:15:15  profilanswer
 

J'ai essayé local et de passer en parametres et j'ai une erreur : requires explicit package name... je crois que j'ai un pb ailleurs ;)
 
hihi :p

n°113659
deepcore
Posté le 18-03-2002 à 16:20:16  profilanswer
 

J'suis pas un spécialiste mais je pense que ça vient de tes "use". Fait voir ton code...  :)


---------------
"Si ça peut déconner, ça va déconner..."
n°113663
Tentacle
Posté le 18-03-2002 à 16:21:56  profilanswer
 

impulse a écrit a écrit :

J'ai essayé local et de passer en parametres et j'ai une erreur : requires explicit package name... je crois que j'ai un pb ailleurs ;)
 
hihi :p  




 
il doit te donner un numero de ligne a ce moment-là... regarde ou ça se trouve :)

n°113669
impulse
Posté le 18-03-2002 à 16:29:05  profilanswer
 

J'utilise des modules mais je crois pas que ce soit ça le pb...
quand je passe en param j'ai cette erreur : use of uninitialized value in pattern match (et substitution et print). Alors que mes parametres sont bien passes... j'ai deja eu un pb comme ça il me semble mais je me souviens pas comment le resoudre.
 
hihi :p

n°113675
deepcore
Posté le 18-03-2002 à 16:32:34  profilanswer
 

L'idéal, c'est que file ton code et ton message d'erreur, ce sera plus simple.  ;)


---------------
"Si ça peut déconner, ça va déconner..."
n°113676
impulse
Posté le 18-03-2002 à 16:33:31  profilanswer
 

tentacle > oui bien sur : le compilo m'indique la ligne. La variable qui a besoin du nom de package est $toto (dans mon exemple).
 
quand je passe en param je fais ça :
 
use strict;  
...  
 
sub affect  
{  
 my $toto = "hello world !";  
 print ($toto);  
}  
 
sub print  
{  
  my $text = $_[0];  
  print $text;          <- use of uninitialized value in print
}  
 
 
hihi :D

n°113680
impulse
Posté le 18-03-2002 à 16:37:04  profilanswer
 

Deepcore > mon code est top secret :p
 
Non en fait je sais ou est le pb et ça sert a rien que je file tout mon code (y'en a pas mal et j'ai simplifie au max la).
Je voudrais passer en param mais j'ai ce pb de var non initialisée...
 
hihi :p

n°113688
deepcore
Posté le 18-03-2002 à 16:53:43  profilanswer
 

Ben écoute, là, je vois pas trop. Par contre c'est pas trop conseillé d'utiliser $_[o], utilise @_ c'est plus cool ;) . Enfin, c'est mon avis. :D


---------------
"Si ça peut déconner, ça va déconner..."
mood
Publicité
Posté le 18-03-2002 à 16:53:43  profilanswer
 

n°113689
Tentacle
Posté le 18-03-2002 à 16:57:15  profilanswer
 

Deepcore a écrit a écrit :

Ben écoute, là, je vois pas trop. Par contre c'est pas trop conseillé d'utiliser $_[o], utilise @_ c'est plus cool ;) . Enfin, c'est mon avis. :D  




 
c'est la même chose non?
$_[0] c'est récupérer le premier élément du tableau @_
C'est que l'on peut faire aussi shift @_ mais ça revient au même

n°113691
impulse
Posté le 18-03-2002 à 16:59:34  profilanswer
 

oki Deepcore... merci pour ton aide (je crois que j'ai pas vraiment tapé du bon code, va falloir que je reprenne ça :( ).
Pour le passage de parametres : j'ai appris Perl (et je continue tous les jours bien sur) avec le camel book et c'est comme ça qu'ils font dedans... et c'est un peu la reference ce bouquin. ;)
 
hihi :D

n°113694
impulse
Posté le 18-03-2002 à 17:01:37  profilanswer
 

Oui et en + je dis n'importe quoi : tentacle a tout a fait raison, j'utilise @_ en faisant $_[0] => je prends le 1er element de l'array qui contient les params...
 
hihi -_-

n°113695
Tentacle
Posté le 18-03-2002 à 17:06:28  profilanswer
 

mmm Au fait tu as pensé au fait que ce n'est peut-être pas très bon de redéclarer la fonction print? enfin il me semble :)

n°113747
deepcore
Posté le 18-03-2002 à 17:53:30  profilanswer
 

impulse a écrit a écrit :

Oui et en + je dis n'importe quoi : tentacle a tout a fait raison, j'utilise @_ en faisant $_[0] => je prends le 1er element de l'array qui contient les params...
 
hihi -_-  




 
Je dis pas que c'est faux (se serait con puisque c'est bon) mais j'ai lu à plusieurs reprises que c'était pas top de faire comme ça.
Tentacle> le "shift" ne sert à rien: $a = @_  ;)


---------------
"Si ça peut déconner, ça va déconner..."
n°113754
Tentacle
Posté le 18-03-2002 à 18:06:47  profilanswer
 

Deepcore a écrit a écrit :

 
 
Je dis pas que c'est faux (se serait con puisque c'est bon) mais j'ai lu à plusieurs reprises que c'était pas top de faire comme ça.
Tentacle> le "shift" ne sert à rien: $a = @_  ;)  




 
dans le cas present c'est vrai :) c'est dans le cas où il y a plusieurs arguments qu'on utilise cela.
 
Mais je vois pas pourquoi ce ne serait pas le top d'utiliser $_[0] vu que c'est l'accès normal à un tableau. Sinon ya aussi (dans le cas de plusieurs arguments) my ($a, $b, $c) = @_;

n°113980
impulse
Posté le 19-03-2002 à 09:53:00  profilanswer
 

Bon, j'ai réécrit mon code et j'ai plus de pb en passant en parametres... je sais pas ce qui n'allait pas par contre.
 
Merci Deepcore et Tentacle. :jap:
 
hihi :p
 
PS : tentacle > je ne redeclare pas la fonction print, je fais juste un "print $my_scalar" (tu peux passer un peu ce que tu veux comme argument a un print de toutes façons).


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

  [Perl] variables locales et cie...

 

Sujets relatifs
[Perl] petit pb incomprehensible... pour moi[Perl + xChat / nunux] blem avec une variable
PERL +SQL[ C noobs inside] combien d'octets ça vaut les !=tes variables???
[Pascal/Delphi] déclarer des nouvelles variables dans un while[PERL] Modules Storable et Math::Matrix
[Perl] Ca veut dire quoi $. ?url, proxy et perl
[Perl / JS] comment gerer le onChange en Perl ?lire une page HTML en PERL
Plus de sujets relatifs à : [Perl] variables locales et cie...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR