encore et encore du code pour la maitrise du truc - Perl - Programmation
Marsh Posté le 11-01-2004 à 22:20:17
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)
Marsh Posté le 12-01-2004 à 00:54:11
Ok merci pour tes remarques ...Et t inquiete j aime mieux les gens qui y vont franco....
Suis pas expert en programmation perl ..bref kk remaque
je n'ai pas mis tout le code ds mon precedent message , mais j ai qd meme respecte les regle de prog comme la declaration des variable
- Ce qui me gene ds le || die c que le programme s arrete et ca je ne le veux pas ...car je traite plusieur fichier..
Pour le reste j ai reecrit kk lignes c en effet plus jojo
Marsh Posté le 12-01-2004 à 09:33:42
pour le || die tu n'est pas obligé de mourrir, mais au moins tu peut afficher un message d'erreur avec warn et passer au fichier suivant plutot que d'essayer de lire depuis un fichier qui n'a pas été ouvert
ensuite pour tes variables il vaut mieux essayer de declarer tes variables le plus "localement" possible, pour etre certain qu'il n'y ai pas de conflit (par exemple une ancienne valeur qui n'a pas été initialisée)
Marsh Posté le 11-01-2004 à 19:05:24
Bsoir a tous .. je continue mon entrainement
Les resultats des commandes iostat et swap -s me produisent deux fichier qui sont comme consocpu et consomem
structure
jj hh mm ss cpu ( mesure faite toutes les 30s )
et
jj hh mm ss mem
je veux par jour
cpu_moyen;cpu_max;mem_max
et le code est le suivant
vous en pensez quoi ?