Bonjour,
J'écris un script Perl qui, dans un thread, lance un exécutable, et doit traiter les traces affichées au fur et à mesure par cet exécutable (i.e: les stocker dans une bdd). Sachant que les premières traces en sortie arrivent quelque temps après lancement de l'exe..
donc en essayant un truc du genre:
Il semble que mon prog n'entre jamais dans la boucle <while> parce que pas de sortie de traces immédiate (en essayant avec la cmd linux date ou ls, ça marche).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 $thr = threads->new(\&sub_fonction); sub subfonction() { $cmd = "./executable | "; open(OUT, $cmd) || die "impossible de dupliquer le processus $!"; while (my $ln = <OUT>) { .... } close(OUT); }
Qqn peut-il m'aider?
Merci d'avance
Partager