Ca fait quelques années que j'ai commencé le perl (faut dire poru faire du web y avait que ca a l'époque), et depuis je me suis quand même pas mal amélioré....
Mais il y a de cela cinq minutes, en faisant des tests et en mettant des carp partout, je me suis rendu compte, notamment dans la fonction qui me posait problème, que :
my %hash1, %hash2;
était différent de
my (%hash1, %hash2);
Ok le use strict le détecte, mais je l'avais omis dans ce script...
Mais ma question est alors pourquoi
my %hash1, %hash2;
ne génère qu'un warning sur la non existence de %hash2, et pas de vraie erreur ?
# Re: En perl aussi on en apprend tous les jours....
Posté par Twidi (site web personnel) . Évalué à 0.
désolé pour le dérangement
# Re: En perl aussi on en apprend tous les jours....
Posté par Pierre Tramo . Évalué à 4.
Ce qui est fortement déconseillé sur des scripts conséquents. Par exemple, si dans ton script tu as une variable globale et une locale qui portent le même nom, si tu omets de déclarer la variable locale dans la fonction, c'est la globale qui sera utilisée...
[^] # Re: En perl aussi on en apprend tous les jours....
Posté par Twidi (site web personnel) . Évalué à 2.
mais dans
my %hash1, %hash2;
le "my %hash1" ok logique que ce soit correct, mais syntaxiquement, pourquoi le ",%hash2" l'est ?
[^] # Re: En perl aussi on en apprend tous les jours....
Posté par Pierre Tramo . Évalué à 2.
Mais c'est aussi pour ça que strict et warning sont quasi obligatoires.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.