Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Retour d'un tableau de hash

3 réponses
Avatar
Florent
Bonjour à tous,

J'ai une fonction qui retourne un tableau de hash.
c'est à dire de la façon:
return (%hash1,%hash2,%hash3,%hash4);

Je voudrais récuperer les 2 premiers elements dans un tableau $tab1 et
les deux suivants dans un autre $tab2
Je fais :
($tab1[0],$tab1[1],$tab2[0],$tab2[1]) = MaFonction();

Mais, j'ai beau faire un :
print $tab1[1]{'Clef'};
j'ai cherché dans pas mal de façon differente, mais impossible de
récuperer les valeurs dans les tables de hachage.

Si quelqu'un pouvait me donner la clef qui pourrait m'ouvrir la porte de
mes tables de hachages ( woarf le jeux de mot ;) ) ...
d'avance merci

Florent

3 réponses

Avatar
Nicolas George
Florent wrote in message <43e53ae3$0$17068$:
Si quelqu'un pouvait me donner la clef qui pourrait m'ouvrir la porte de
mes tables de hachages ( woarf le jeux de mot ;) ) ...
d'avance merci


On ne peut pas faire de tableau de tables de hashage, il faut utiliser des
références. Cf. perldoc perlreftut pour une introduction.

Avatar
Jacques Caron
Salut,

On Sun, 05 Feb 2006 00:38:05 +0100, Florent wrote:

J'ai une fonction qui retourne un tableau de hash.
c'est à dire de la façon:
return (%hash1,%hash2,%hash3,%hash4);


Non, ça ça renvoie un grand tableau qui ressemble à un seul hash.

Ce qu'il faut faire c'est retourner des références:

return (%hash1,%hash2,%hash3,%hash4);

Ou dans certains cas:

return ({%hash1},{%hash2},{%hash3},{%hash4})

Je voudrais récuperer les 2 premiers elements dans un tableau $tab1 et
les deux suivants dans un autre $tab2
Je fais :
($tab1[0],$tab1[1],$tab2[0],$tab2[1]) = MaFonction();


Avec ce que tu as fais plus haut, tu obtiens la première clef dans
$tab1[0], la première valeur dans $tab1[1], la deuxième clef dans
$tab2[0], la deuxième valeur dans $tab2[1]. Avec l'une des méthodes
indiquées tu obtiendras une référence sur un hash dans chaque.

Mais, j'ai beau faire un :
print $tab1[1]{'Clef'};
j'ai cherché dans pas mal de façon differente, mais impossible de
récuperer les valeurs dans les tables de hachage.


Normal.

Si quelqu'un pouvait me donner la clef qui pourrait m'ouvrir la porte de
mes tables de hachages ( woarf le jeux de mot ;) ) ...


perldoc perlreftut
perldoc perlref
perldoc perldsc

Jacques.
--
Oxado http://www.oxado.com/

Avatar
Florent
merci !

Salut,

On Sun, 05 Feb 2006 00:38:05 +0100, Florent wrote:

J'ai une fonction qui retourne un tableau de hash.
c'est à dire de la façon:
return (%hash1,%hash2,%hash3,%hash4);



Non, ça ça renvoie un grand tableau qui ressemble à un seul hash.

Ce qu'il faut faire c'est retourner des références:

return (%hash1,%hash2,%hash3,%hash4);

Ou dans certains cas:

return ({%hash1},{%hash2},{%hash3},{%hash4})

Je voudrais récuperer les 2 premiers elements dans un tableau $tab1
et les deux suivants dans un autre $tab2
Je fais :
($tab1[0],$tab1[1],$tab2[0],$tab2[1]) = MaFonction();



Avec ce que tu as fais plus haut, tu obtiens la première clef dans
$tab1[0], la première valeur dans $tab1[1], la deuxième clef dans
$tab2[0], la deuxième valeur dans $tab2[1]. Avec l'une des méthodes
indiquées tu obtiendras une référence sur un hash dans chaque.

Mais, j'ai beau faire un :
print $tab1[1]{'Clef'};
j'ai cherché dans pas mal de façon differente, mais impossible de
récuperer les valeurs dans les tables de hachage.



Normal.

Si quelqu'un pouvait me donner la clef qui pourrait m'ouvrir la porte
de mes tables de hachages ( woarf le jeux de mot ;) ) ...



perldoc perlreftut
perldoc perlref
perldoc perldsc

Jacques.