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

Tri de hash complexe par ordre d'uinsertion

1 réponse
Avatar
Sébastien Cottalorda
Salut,

Voici mon problème:
Je souhaiterai trier un hachage multidimentionnel selon l'ordre d'insertion.
Voici le code qui ne marche pas:

#!/usr/bin/perl -w
use strict;
use Tie::IxHash;
no strict 'subs';
my %hachage = ();
my %hachage_complexe = ();
die 'Tie Impossible' unless tie %hachage, 'Tie::IxHash';
die 'Tie complexe Impossible' unless tie %hachage_complexe, 'Tie::IxHash';
#======== Première Partie OK ======================
$hachage{deux} = 2;
$hachage{un} = 1;
$hachage{cinq} = 5;
$hachage{trois} = 3;
$hachage{quatre} = 4;
print "$_ => $hachage{$_}\n" foreach keys %hachage;
print "--------------------------------------\n";
#======== Deuxième Partie PAS BON ==================
$hachage_complexe{valeur}{deux} = 2;
$hachage_complexe{valeur}{un} = 1;
$hachage_complexe{valeur}{cinq} = 5;
$hachage_complexe{valeur}{trois} = 3;
$hachage_complexe{valeur}{quatre} = 4;
foreach (keys %{ $hachage_complexe{valeur} }){
print "$_ => $hachage_complexe{valeur}{$_}\n";
}
exit;

La deuxième partie ne trie pas selon l'ordre d'insertion.

Avez-vous une solution ?


Merci d'avance.

Sébastien


--
[ retirer NOSPAM pour répondre directement
remove NOSPAM to reply directly ]

1 réponse

Avatar
Sébastien Cottalorda
Salut,


Salut moi-même,

Voici mon problème:
Je souhaiterai trier un hachage multidimentionnel selon l'ordre d'insertion.
Voici le code qui ne marche pas:

#!/usr/bin/perl -w
use strict;
use Tie::IxHash;
no strict 'subs';
my %hachage = ();
my %hachage_complexe = ();
die 'Tie Impossible' unless tie %hachage, 'Tie::IxHash';
die 'Tie complexe Impossible' unless tie %hachage_complexe, 'Tie::IxHash';
#======== Première Partie OK ===================== > $hachage{deux} = 2;
$hachage{un} = 1;
$hachage{cinq} = 5;
$hachage{trois} = 3;
$hachage{quatre} = 4;
print "$_ => $hachage{$_}n" foreach keys %hachage;
print "--------------------------------------n";
#======== Deuxième Partie PAS BON =================
Il suffisait d'ajouter:

die "Tie Impossible sur le hash de hash" unless tie
$hachage_complexe{valeur},'Tie::IxHash';

$hachage_complexe{valeur}{deux} = 2;
$hachage_complexe{valeur}{un} = 1;
$hachage_complexe{valeur}{cinq} = 5;
$hachage_complexe{valeur}{trois} = 3;
$hachage_complexe{valeur}{quatre} = 4;
foreach (keys %{ $hachage_complexe{valeur} }){
print "$_ => $hachage_complexe{valeur}{$_}n";
}
exit;

La deuxième partie ne trie pas selon l'ordre d'insertion.


C'est bon maintenant!

Sébastien