Que se passe t'il lorsqu'on lance un programme binaire depuis un script perl
La sortie du programme devient t'elle la sortie du script perl ?
Le prog attent t'il la fin de l'execution du premier programme ou lance t'il tout de suite le second
En gros puis-je uttiliser perl plutot qu'un script shell
pour lancer plusieurs fois un programme avec des arguments defini par une boucle for Tout en ayant la sortie sur STDOUT ?
est ce que
for i,j
exex( monprog i j )
lancera le prog et attendras que le premier se finissent pour remonter dans la boucle ou non ?
Merci
# oui et non
Posté par iznogoud . Évalué à 1.
Non. Si tu veux la sortie du programme en question, il te faudra faire un open(FILEHANDLE,"tonexécutiondeprogramme |");
Le prog attent t'il la fin de l'execution du premier programme ou lance t'il tout de suite le second
Ben, il exécutera les programmes dans l'ordre. Mais si tu mets ton programme appelé dans un FILEHANDLE, il sera forké, exécuté, et perl pourra continuer à travailler, tant que tu n'as pas besoin d'accéder à ce FILEHANDLE, pas de soucis. A la première utilisation, il faudra que le programme ait fini (il me semble, à vérifier).
En gros puis-je uttiliser perl plutot qu'un script shell
Bien sûr rien ne t'empêche d'utiliser perl à la place de shell. Mais faut voir l'utilisation, si ton script shell est une suite d'exécution de programmes, je resterai en shell. Passer en perl te donnera plein de system(blabla); c'est laid. Bon, après, ça dépend des exigences et des programmes.
pour lancer plusieurs fois un programme avec des arguments defini par une boucle for Tout en ayant la sortie sur STDOUT ?
Ho ben ça c'est pas un problème, ça se fera tout seul. Les programmes sortiront leur résultat les uns à la suite des autres.
lancera le prog et attendras que le premier se finissent pour remonter dans la boucle ou non ?
oui
Merci
de rien.
# Je comprend pas bien
Posté par mac . Évalué à 1.
Si par contre tu souhaites savoir comment lancer un process externe en Perl et attendre la fin de son exécution, un petit tour dans les FAQ et les manuels est peut-être utile ? Par exemple :
- la commande exec() : http://www.enstimac.fr/Perl/DocFr/perlfunc.html#item_system(...)
- la commande system() : http://www.enstimac.fr/Perl/DocFr/perlfunc.html#item_system(...)
(*) je fait l'hypothèse que n'est pas destructif pour ton PC ou pour toi-même naturellement :P
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.