Forum Programmation.perl Lancer un programme depuis perl et sortie

Posté par  .
Étiquettes : aucune
0
23
fév.
2005
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  . Évalué à 1.

    La sortie du programme devient t'elle la sortie du script perl ?
    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  . Évalué à 1.

    Si ton problème est "comment se comporte Perl quand on fait ", le meilleur conseil qu'on puisse te donner est de faire et de regarder(*).

    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.