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

 


Dernière réponse
Sujet : [Perl] variables locales et cie...
impulse 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).

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
impulse 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).
Tentacle

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) = @_;

deepcore

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 = @_  ;)

Tentacle 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 :)
impulse 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 -_-
impulse 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
Tentacle

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

deepcore 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
impulse 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
impulse 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
deepcore L'idéal, c'est que file ton code et ton message d'erreur, ce sera plus simple.  ;)
impulse 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
Tentacle

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 :)

deepcore J'suis pas un spécialiste mais je pense que ça vient de tes "use". Fait voir ton code...  :)
impulse 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
deepcore 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.
impulse 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

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