excuse moi mais tu code un peu comme un porc
- verifi toujours le resultat d'un open avec un || die, et met toujours les > ou <
- met des my, pasque réutiliser tout le temps les memes variables comme $jj, ca rend pas le truc tres clair. use strict!!
et c'est koi cette horreur :
($jj,$h,$m,$s)=( (split(/ /,$_))[0],(split(/ /,$_))[1],(split(/ /,$_))[2],(split(/ /,$_))[3]);
??
pourkoi pas tout simplement
($jj,$h,$m,$s)= split(/ /,$_) (et avec un my devant)
de meme
$inst=$jj.":".$h.":".$m.":".$s;
ce qui plus facilement si tu profite de l'interpolation des variables dans les doubles quotes:
$inst= "$jj:$h:$m:$s";
ensuite tu utilise (split(/ /,$_))[4] deux fois, tu aurais mieux fait le le mettre dans une varible dans la primiere ligne de ta boucle, avec un nom qui indique ce que c'est
bon, ensuite dans ta derniere boucle tu fait:
%max = ($jj => $conso{$tab[0]});
ce qui a pour effet d'ecraser à chaque fois ce que %max contenait precedement, ce qui je pense n'est pas ce que tu cherche
donc tu déclare %max à l'exterieur de ta boucle avec un
my %max = ();
puis dans ta boucle tu fait simplement:
$max{$jj} = $conso{$tab[0]};
et si tu veux chomper ta hash tu le fait apres ta boucle, sinon il va passer son temps à verifier des valeurs qu'il a deja chompé
bon à part ca je vois pas trop koi te dire: c'est difficile de comprendre ce que tu cherche à faire de la maniere dont c'est ecrit ici
désolé si je suis agressif, mais... tu sali perl mec! Si je te croise dans la rue je t'arrache le coeur et je le brule en l'honneur de Larry Wall (rappel moi de le faire à l'occasion)