Script perl qui appelle un script perl avec un time
Bonjour à tous,
Je rencontre un problème pour enregistrer le temps que met mon script perl.
Mon problème vient du fait que j'ai un premier script qui sert un peu de main et qui appelle un autre script en lui passant les paramètres.
Script main.pl :
Code:
1 2 3 4 5 6 7
| #! /usr/bin/perl
foreach $lettre ("a", "b", "c"){
foreach $chiffre (1, 2, 3){
system("perl test.pl $lettre $chiffre");
}
} |
Script test.pl :
Code:
1 2 3 4 5 6
| #! /usr/bin/perl
$lettre = $ARGV[0];
$chiffre = $ARGV[1];
print "test : $lettre $chiffre\n";
`touch test$lettre$chiffre`; |
J'ai besoin d'enregistrer le résultat de time dans le fichier qui est créé par le script test afin de sauvegarder le temps d'exécution de chaque expérimentation. Tous les fichiers créés par le script test ont toujours le format test$lettre$chiffre, du coup j'ai essayé d'ajouter le temps à la fin de ce fichier en utilisant cette commande dans mon main :
Code:
system("( time perl test.pl $lettre $chiffre ) 2> test$lettre$chiffre");
Mais malheureusement bien que cette commande écrive le temps dans le bon fichier, elle me l'écrit au début du fichier ce qui efface ce qui avait avant sur les 10 premières lignes.
Du coup comment puis je faire pour y enregistrer à la fin?
De plus le temps retourné a un format bizarre :
Code:
1 2
| 0.15user 0.02system 0:00.16elapsed 112%CPU (0avgtext+0avgdata 88800maxresident)k
0inputs+80outputs (0major+6815minor)pagefaults 0swaps |
Comment dois je faire pour avoir un format simple :
Code:
1 2 3
| real 0m4.704s
user 0m4.584s
sys 0m0.684s |
Bonne journée à ceux qui me liront :P