variable en my identique

Le
Newsgroups
Bonjour,

Je pense que j'ai raté quelque chose (peut être me suis-levé du
mauvais pied !).

Bon, en gros, j'ai une variable que j'initialise avec my pour instancier
une librairie. Or elle est toujours identique, entre chaque passage sur
l'instanciation celà me gene beaucoup car je me retrouve avec un seul
objet

Voici le bout de code que j'ai :


while (1) {
ma_fonction();
}

sub ma_fonction() {
my $h = new h_package();
print $h.""; # change à chaque appel : ok
if ($h->get()) {
my $s = new s_package();
print $s.""; # <= affiche toujours s_package=HASH(0x8c2a938)
}
}
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Paul Gaborit
Le #153338
À (at) Thu, 25 Oct 2007 20:11:29 +0200,
Newsgroups
Bon, en gros, j'ai une variable que j'initialise avec my pour instancier
une librairie. Or elle est toujours identique, entre chaque passage sur
l'instanciation... celà me gene beaucoup car je me retrouve avec un seul
objet...

Voici le bout de code que j'ai :


while (1) {
ma_fonction();
}

sub ma_fonction() {
my $h = new h_package();
print $h."n"; # change à chaque appel : ok
if ($h->get()) {
my $s = new s_package();
print $s."n"; # <= affiche toujours s_package=HASH(0x8c2a938)
}
}



C'est quoi ces trucs 'h_package' et 's_package' ? Des packages ? Des
fonctions ? Si ce sont des fonctions, que contiennent-elles et comment
est écrit la fonction 'new' ? Si ce sont des packages, pourquoi
n'ont-ils par leur nom qui commence par une majuscule comme l'exige
les conventions d'écriture du code Perl ? Et pouquoi ne pas utiliser
la syntaxe d'appel direct qui est plus claire :

my $h = H_package->new();
...
my $s = S_package->new();

Ensuite, le fait que le résultat retourné par 'new' soit différent ou
non à chaque appel dépend uniquement de la manière dont la fonction ou
les méthodes 'new' sont écrites...

--
Paul Gaborit - Perl en français -
Newsgroups
Le #153337
C'est quoi ces trucs 'h_package' et 's_package' ? Des packages ?


oui, ce sont des packages..

Si ce sont des packages, pourquoi n'ont-ils par leur nom qui commence
par une majuscule comme l'exige les conventions d'écriture du code
Perl ?
désolé, je suis pas (encore) puriste... j'en suis au début du script et

il vaut mieux prendre les bonnes habitudes dès maintenant. :-)


Et pouquoi ne pas utiliser
la syntaxe d'appel direct qui est plus claire :

my $h = H_package->new();
...
my $s = S_package->new();


je m'étais posé la question, mais comme les 2 semblent avoir le même
effet..., mais bon, j'ai fait comme précédemment, je vous fait
confiance. :-)


Ensuite, le fait que le résultat retourné par 'new' soit différent ou
non à chaque appel dépend uniquement de la manière dont la fonction ou
les méthodes 'new' sont écrites...


Ah, ben oui, nous en venons à mon problème...
je faisait des my $xxx; avant de faire le package H_package; au lieu de
les mettre dans ma méthode de création (new)...

du coup ca me donne un résultat tout à fait pertinent. c'est ce que je
voulais. :-)

Merci

Publicité
Poster une réponse
Anonyme