[Perl] - Récupération infos hash

Fermé
gorkimat Messages postés 70 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 1 mars 2012 - Modifié par gorkimat le 23/03/2010 à 15:43
gorkimat Messages postés 70 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 1 mars 2012 - 13 avril 2010 à 11:23
Bonjour à tous,

Voila, j'ai un petit soucis en perl. Je souhaiterais parcourir un hash à deux clés a partir de la première clé, mais je n'y arrive pas avec le foreach.

Voici mon code :

$h->{'1','a'} = "1-a";
$h->{'1','b'} = "1-b";
$h->{'1','c'} = "1-c";
$h->{'2','a'} = "2-a";
$h->{'2','b'} = "2-b";
$h->{'2','c'} = "2-c";
$h->{'3','a'} = "1-a";
$h->{'3','b'} = "1-b";
$h->{'3','c'} = "1-c";


Et je souhaiterais par exemple récupérer :

i=2 donc je récupère :

'a' <-> 2-a
'b' <-> 2-b
'c' <-> 2-c

Merci pour votre aide, en espérant que je n'ai pas été trop confus dans mes explications.

Mathieu
A voir également:

3 réponses

gorkimat Messages postés 70 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 1 mars 2012 9
Modifié par gorkimat le 23/03/2010 à 16:48
Re-bonjour,

J'ai trouver ça, mais je me demande s''il n'y a pas plus propre, et il me manque le "a,b,c" de la deuxième clé :-( ??

my %h = ();

$h->{'1','a'} = "1-a";
$h->{'1','b'} = "1-b";
$h->{'1','c'} = "1-c";
$h->{'2','a'} = "2-a";
$h->{'2','b'} = "2-b";
$h->{'2','c'} = "2-c";
$h->{'3','a'} = "3-a";
$h->{'3','b'} = "3-b";
$h->{'3','c'} = "3-c";

my $i=3;

foreach $key (sort keys %$h){
if (index ($key,$i) > -1){
print $h->{$key}."\n";
}
}




Mathieu
0
Giorgiolino Messages postés 253 Date d'inscription vendredi 15 mai 2009 Statut Contributeur Dernière intervention 2 mars 2015 52
23 mars 2010 à 19:09
Bonjour,

une petite question :
Y a-t-il une raison particulière pour laquelle tu utilises un hash à clé double(1) et non pas un hash de hash(2) ?

(1) Ton cas actuel :
 $h->{'1', 'a'} = "1 - a"
$h->{'1', 'b'} = "1 - b"
...


(2) Hash de hash :
$h->{1}->{'a'} = "1 - a";
$h->{1}->{'b'} = "1 - b";
...
0
gorkimat Messages postés 70 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 1 mars 2012 9
13 avril 2010 à 11:23
Bonjour,

Désolé, j'étais absent un petit temps (congé paternité) ..

Ben en fait je récupère ce hash d'une fonction que je dois utiliser pour lire un fichier :-( . Dans ce cas, il faudrait que je créé une autre fonction.
0