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

  FORUM HardWare.fr
  Programmation
  Perl

  [resolu]problème avec une fonction

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[resolu]problème avec une fonction

n°1476044
Yagmoth
Fanboy
Posté le 15-11-2006 à 20:45:34  profilanswer
 

Bon alors j'ai créé une petite fonction qui demande à l'utilisateur le chemin d'accès d'un fichier, avec en arguments une phrase de requête, une phrase en cas de non indication d'un chemin d'accès et un test à effectuer (soit en lecture, soit en écriture). Voici la fonction :
 

Code :
  1. sub requete_fichier() {
  2. ($phrase,$phrase2,$test)=@_;
  3. print "$phrase";
  4. $fichier=<STDIN>;
  5. chomp($fichier);
  6. if ($fichier eq '')
  7. {
  8. print "$phrase2";
  9. requete_fichier($phrase,$phrase2,$test);
  10. }
  11. elsif ($test eq 'L' &&!open F, ("< $fichier" ))
  12. {
  13. print "le fichier specifie n'existe pas ! ";
  14. requete_fichier($phrase,$phrase2,$test);
  15. }
  16. elsif ($test eq 'W' &&!open F, ("> $fichier" ))
  17. {
  18. print "Le fichier specifie n'est pas accessible en ecriture. ";
  19. requete_fichier($phrase,$phrase2,$test);
  20. }
  21. return $fichier;
  22. }


 
ce qui me chiffonne c'est que ceci marche :
 

Code :
  1. $fichier=requete_fichier('Quel fichier souhaitez vous analyser ? ','Vous devez choisir un fichier a analyser. ','L');


 
parcontre ceci déconne (too many arguments for main::requete_fichier...) :
 

Code :
  1. $fichier=requete_fichier('a','b','W');


 
Est-ce que quelqu'un peut m'éclairer ?


Message édité par Yagmoth le 17-11-2006 à 00:39:26
mood
Publicité
Posté le 15-11-2006 à 20:45:34  profilanswer
 

n°1476049
matafan
Posté le 15-11-2006 à 20:59:55  profilanswer
 

Aucun de tes deux exemples ne fonctionne.
 
Si tu met des () dans la declaration de ta fonction, ca veut dire que tu donnes un prototype, et que ta fonction ne prend pas d'argument. Donc il faut soit enlever les (), soit faire ($$$), qui signifie que ta fonction attend 3 scalaires.
 
Edit : typos


Message édité par matafan le 16-11-2006 à 15:41:44
n°1476062
Yagmoth
Fanboy
Posté le 15-11-2006 à 21:50:20  profilanswer
 

Ben... Le premier exemple fonctionne pourtant à l'exécution  :pt1cable: . Mais je vais ôter les () et voir ce que ça donne, je suppose que tu as raison, mais je ne pige pas comment ça se fait dans ce cas que mon premier exemple a bel et bien fonctionné sans problème...


Message édité par Yagmoth le 15-11-2006 à 21:52:46
n°1476155
matafan
Posté le 16-11-2006 à 03:17:56  profilanswer
 

J'ai essayé sur ma machine, tes deux exemples echouent avec la même erreur (too many arguments). Perl 5.8.8.

n°1476168
anapajari
s/travail/glanding on hfr/gs;
Posté le 16-11-2006 à 08:47:53  profilanswer
 

+1 pour matafan

n°1476666
Aricoh
gentil mais fo po pousser
Posté le 16-11-2006 à 16:45:27  profilanswer
 

Ta ligne suivante me semble bizarre :
 

Code :
  1. ($phrase,$phrase2,$test)=@_;


 
Etant dans une fonction, cette déclaration devrait être préfixée par my
 

Code :
  1. my ($phrase,$phrase2,$test)=@_;


 
Peut être pour ça que ça déconne ?


Message édité par Aricoh le 16-11-2006 à 16:50:18

---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
n°1476910
Yagmoth
Fanboy
Posté le 17-11-2006 à 00:39:00  profilanswer
 

J'ai retiré le () et ça fonctionne dans les deux cas. Parcontre je persiste à dire que le deuxieme exemple fonctionnait au sein de mon programme (une question de structure peut être, aucune idée), mais merci du renseignement et de votre aide ;)


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

  [resolu]problème avec une fonction

 

Sujets relatifs
Appeler fonction avec NuSoap[Resolu] JScrollPane et JTextArea
[Résolu] Problème de compilation fonction poll()[résolu] Problème fonction remplacer les accents
[résolu]probleme entre fonction et regexProblème envoi mail avec fonction mail() [Résolu]
[RESOLU]Fonction mail () problème d'envoi en HTML mais nickel en texteProblème avec la fonction MoveFile [Résolu]
[php]problème avec la fonction logique || [resolu][JAVASCRIPT] Problème d'accès à une frame dans une fonction (résolu)
Plus de sujets relatifs à : [resolu]problème avec une fonction


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