OVH Cloud OVH Cloud

Accéder aux clés de réference d'un objet

4 réponses
Avatar
shivaaz
Bonjour,

voici mon probl=E8me :

je cr=E9e un objet et j'initialise ses valeurs de la facon suivante :

$this->{'lLineParserHref'}=3D{ '0625' =3D> [\&LogManager::_HTTPLineParse,
"WebAllow"]
,'0314'
=3D>[\&LogManager::_ContentBlockLineParse, "ContentBlock"] };

Je souhaiterai maintenant pouvoir acc=E9der dans une bouche foreach =E0
mes cl=E9s (ici 0625 et 0314)

seulement je ne trouve pas de solution :'(
=20
=20
pouvez vous m'aider SVP
=20

MErci par avance

4 réponses

Avatar
Paul Gaborit
À (at) 22 Jul 2005 04:51:37 -0700,
"shivaaz" écrivait (wrote):
je crée un objet et j'initialise ses valeurs de la facon suivante :

$this->{'lLineParserHref'}={ '0625' => [&LogManager::_HTTPLineParse,
"WebAllow"]
,'0314'
=>[&LogManager::_ContentBlockLineParse, "ContentBlock"] };


Drôle de manière de créer un obejt... Mais cela doit correspondre à
votre besoin.

Je souhaiterai maintenant pouvoir accéder dans une bouche foreach à
mes clés (ici 0625 et 0314)


foreach my $keys (keys %{$this->{'lLineParserHref'}}) {
...
}

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>

Avatar
Stephane Zuckerman
voici mon problème :

je crée un objet et j'initialise ses valeurs de la facon suivante :

$this->{'lLineParserHref'}={ '0625' => [&LogManager::_HTTPLineParse,
"WebAllow"]
,'0314'
=>[&LogManager::_ContentBlockLineParse, "ContentBlock"] };

Je souhaiterai maintenant pouvoir accéder dans une bouche foreach à
mes clés (ici 0625 et 0314)

seulement je ne trouve pas de solution :'(
La fonction keys() est là pour ça :


# non testé
use strict;
use warnings;
my %hash = ('001'=>['une', 'valeur'], '10001'=>"une autre"]);
foreach my $key (keys %hash) {
print "clef : $key - valeur : $hash{key}n";
}

--
"Je deteste les ordinateurs : ils font toujours ce que je dis, jamais ce
que je veux !"
"The obvious mathematical breakthrough would be development of an easy
way to factor large prime numbers." (Bill Gates, The Road Ahead)

Avatar
shivaaz
oui je suis d'accord mais si je fait :
my @test = keys $this->{'lLineParserHref'};

ca ne fonctionne pas

message d"erreur :
Type of arg 1 to keys must be hash (not hash element)

J'ai tester aussi :
my @test = keys %this->{'lLineParserHref'}; # sans plus de succès
Avatar
shivaaz
merci bcp !!!!!
cela fonctionne !