Perl tableau de tables de hashage
Fermé
trinity666
-
1 déc. 2008 à 14:35
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 12 janv. 2009 à 12:19
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 12 janv. 2009 à 12:19
A voir également:
- Perl tableau de tables de hashage
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Tableau de raccourcis clavier - Guide
- Trier tableau excel - Guide
4 réponses
j'ai le même problème.
Posé plus simplement ça donnerait : comment faire pour qu'une fonction renvoie deux tables de hashages, et surtout pour récupérer ces deux tables en évitant leur applatissement (que les deux tables se retrouvent dans une seule liste...)
Posé plus simplement ça donnerait : comment faire pour qu'une fonction renvoie deux tables de hashages, et surtout pour récupérer ces deux tables en évitant leur applatissement (que les deux tables se retrouvent dans une seule liste...)
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
12 janv. 2009 à 11:44
12 janv. 2009 à 11:44
Salut,
Après avoir fait
@b=fonc2();
mets un print "@b\n"; pour voir
Après avoir fait
@b=fonc2();
mets un print "@b\n"; pour voir
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
12 janv. 2009 à 11:55
12 janv. 2009 à 11:55
Re,
Tu dois utiliser les paranthèses pour la définition d'un hash et pas les accolades ;-)
Ici my %c={"a"=>"1","b"=>"2","c"=>"3"}; , tu affectes un hash anonyme à un hash au lieu d'affecter à un scalaire.
Par exemple
Voici quelque version pour ta fonction
Tu dois utiliser les paranthèses pour la définition d'un hash et pas les accolades ;-)
Ici my %c={"a"=>"1","b"=>"2","c"=>"3"}; , tu affectes un hash anonyme à un hash au lieu d'affecter à un scalaire.
Par exemple
my $c={"a"=>"1","b"=>"2","c"=>"3"};
Voici quelque version pour ta fonction
sub fonc2{ my @a=(); my %c=("a"=>"1","b"=>"2","c"=>"3"); my %d=("d"=>"4","e"=>"5","f"=>"6"); my %e=("g"=>"7","h"=>"8","i"=>"9","j"=>"10"); $a[0]=\%c; $a[1]=\%d; $a[2]=\%e; return @a; }ou
sub fonc2{ my %c=("a"=>"1","b"=>"2","c"=>"3"); my %d=("d"=>"4","e"=>"5","f"=>"6"); my %e=("g"=>"7","h"=>"8","i"=>"9","j"=>"10"); my @a=(\%c,\%d,\%e); return @a; }ou encore
sub fonc2{ my @a = (); $a[0] = {"a"=>"1","b"=>"2","c"=>"3"}; $a[1] = {"d"=>"4","e"=>"5","f"=>"6"}; $a[2] = {"g"=>"7","h"=>"8","i"=>"9","j"=>"10"}; return @a; }
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
12 janv. 2009 à 12:17
12 janv. 2009 à 12:17
Salut,
Ici $ref_res = [%tags, %FT]; tes hash perdent leur identité.
Tu n'as qu'une référence vers un tableau anonymé.
Essaie
Ici $ref_res = [%tags, %FT]; tes hash perdent leur identité.
Tu n'as qu'une référence vers un tableau anonymé.
Essaie
@ref_res = (\%tags, \%FT); return @ref_res;
12 janv. 2009 à 11:38
et surtout pour récupérer ces deux tables en évitant leur applatissement (que les deux tables se retrouvent dans une seule liste...)
En utilisant les références.
12 janv. 2009 à 11:54
Mais bien évidemment ça marche pas...
Sauf que j'arrive pas à trouver la coquille...
12 janv. 2009 à 12:04
suivi de l'appel de la fonction :
12 janv. 2009 à 12:12
Le problème est dnc résolu pour moi
12 janv. 2009 à 12:19
On était en train de poster en même temps ;-).
http://www.commentcamarche.net/forum/affich 9694055 perl tableau de tables de hashage?#8