[PERL] Compter les valeurs d'un Hash

Fermé
sandrill0n Messages postés 79 Date d'inscription lundi 2 mai 2005 Statut Membre Dernière intervention 22 octobre 2011 - 6 juil. 2005 à 13:03
sandrill0n Messages postés 79 Date d'inscription lundi 2 mai 2005 Statut Membre Dernière intervention 22 octobre 2011 - 6 juil. 2005 à 15:12
Bonjour,

J'ai créé un Hash qui pour chaque index met à la suite des durées en min.

Je souhaiterais additionner toutes les durées pour avoir pour chaque index la durée totale en min.

Merci.

PS : voici ce que j'ai commencé à faire :


foreach $idx (keys %Tps_Test) {
#print "$idx:\t $Tps_Test{$idx}\n";
@tab_time = split (/;/,$Tps_Test{$idx});
#print "$idx:\t @tab_time\n";
SWITCH : {
if ($idx =~/Normal/) { @tab_normal = split (/;/,$Tps_Test{$idx}); last SWITCH; }
if ($idx =~/100/) { @tab_cent = split (/;/,$Tps_Test{$idx}); last SWITCH; }
if ($idx =~/Demande/) { @tab_dem = split (/;/,$Tps_Test{$idx}); last SWITCH; }
if ($idx =~/PC/) { @tab_pc = split (/;/,$Tps_Test{$idx}); last SWITCH; }
if ($idx =~/Wafer/) { @tab_waf = split (/;/,$Tps_Test{$idx}); last SWITCH; }
$nothing = 1;
}
}

#print "@tab_normal\n";

$sum_normal = 0;
for ($cpt_n=0; $cpt_n <= $#tab_normal; $cpt_n++) {
$sum_normal = $sum_normal + $tab_normal[$cpt_n];
}
print "Normal=$sum_normal min\n";

$sum_cent = 0;
for ($cpt_c=0; $cpt_c <= $#tab_cent; $cpt_c++) {
$sum_cent = $sum_cent + $tab_cent[$cpt_c];
}

$sum_dem = 0;
for ($cpt_d=0; $cpt_d <= $#tab_dem; $cpt_d++) {
$sum_dem = $sum_dem + $tab_dem[$cpt_d];
}

$sum_pc = 0;
for ($cpt_p=0; $cpt_p <= $#tab_pc; $cpt_p++) {
$sum_pc = $sum_pc + $tab_pc[$cpt_p];
}

$sum_waf = 0;
for ($cpt_w=0; $cpt_w <= $#tab_waf; $cpt_w++) {
$sum_waf = $sum_waf + $tab_waf[$cpt_w];
}


Ceci est un peu trop lourd, et je veux garder les données de durée associées à l'index pour créer un histogramme (index en fonction du temps) ensuite
A voir également:

1 réponse

un hash
deux hash
trois hash....
0
sandrill0n Messages postés 79 Date d'inscription lundi 2 mai 2005 Statut Membre Dernière intervention 22 octobre 2011
6 juil. 2005 à 13:27
je fais un Hash pour chaque mode ?
0
sandrill0n Messages postés 79 Date d'inscription lundi 2 mai 2005 Statut Membre Dernière intervention 22 octobre 2011
6 juil. 2005 à 15:12
est-il possible d'utiliser la fonction map ?
si oui, comment l'utiliser ?

$Tps_Test{$Mode} = $Tps_Test{$Mode}.$Duree.";"
0