Différence de total !

Le
Fabrice L.
Bonjour à tous,

je suis confronté a un léger souci !

J'ai un @tableau résultant d'une requete sql contenant environ 120000
entrées.
avant d'effectuer une nouvelle entrée, je veux verifier que celle ci
n'existe dans @tableau.

j'utilise donc un hashage comme indiqué dans perlfaq4, tout fonctionne sauf
le nombre de clé dans mon %hash différant du nombre d'entrées dans mon
@tableau.

un petit script valant mieux qu'un probleme mal expliqué, le voici !

## je compte les entrées dans mon tableau
$count_tableau = @sb_archive;

## je fabrique un %hash avec mon tableau.
%is_blue = ();
for (@sb_archive) { $is_blue{$_} = 1 }

## je compte le nombre de clé suivant tjrs perlfaq4
$num_keys = keys %is_blue;

print "$count_tableau$num_keys";

qui donne :

120004
44523

Qu'est ce qui explique cette différence de total ?

D'avance merci

Fabrice
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Nicolas George
Le #16556831
"Fabrice L." wrote in message
avant d'effectuer une nouvelle entrée, je veux verifier que celle ci
n'existe dans @tableau.



Normalement, ça devrait être le boulot de la base de données de s'assurer de
ça.

Qu'est ce qui explique cette différence de total ?



La réponse évidente est qu'il y a des éléments en double dans le tableau.
Essaie :

for (@sb_archive) { $is_blue{$_} = 1 }


^
Ajoute « warn "duplicate [$_]n" if $is_blue{$_}; » juste là, ça montrera si
c'est ça qui se passe.
Publicité
Poster une réponse
Anonyme