Je cherche comment trier efficacement un hash par rapport a un autre le but est de supprimer les valeurs déjà présente du hash de référence du hash en cours
J'ai ce ti script qui marche très bien mais je trouve qu'il fait beaucoup de bouclesce qui peut poser problème avec des hash de plusieur milliers voir million de valeurs
.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 #!/usr/bin/perl -w my %i = ( maison => ["aa"] ); # -> sql my %l = (maison => ["bb"], rien => ["gna","nananan"] ); # -> page my @tab = (keys %i); my @ref = (keys %l); for ($a = 0; $a <= $#tab; $a++) { for ($b = 0; $b <= $#ref; $b++) { if ( $tab[$a] =~ /$ref[$b]/gi ) { delete $ref[$b]; } } } foreach my $key (@ref) { print "$l{$key}[0] et $l{$key}[1]\n"; }
Je cherche des optimisations si vous avez des idées je suis preneur![]()
Partager