Salut,
Existe il l'équivalent de la commande "source" sous Unix en Perl ?
Merci d'avance
BàV
MSP
Salut,
Existe il l'équivalent de la commande "source" sous Unix en Perl ?
Merci d'avance
BàV
MSP
Bonjour,
Tu dois parler de la commande source de tcsh je pense (qui est une built-in).
Pourquoi veux tu une equivalence ?
Si tu veux morceler ou moduler ton code, tu as ta disposition les .pm . On a parlé de cela dans le forum.
Une recherche et ca sera bon.
Mais si tu veux executer la meme built-in, tu peux utiliser system, les backquotes, ...
Salut ,
Je te remercie d'avoir répondu , mais je crois qu'un peu plus d'explication de ma part nous sera utile pour solutionner mon petit souci.
En fait, nous disposons d'un package de bioinformatique, qui nécessite la définition de variables d'environnements spécifiques, pour
pouvoir exécuter correctement les commandes de ce package.
Afin de pouvoir utiliser ces commandes dans mon script perl, je dois donc commençer par définir les variables d'environnement du package de bioinfo.
Je le fais, pour l'instant, en executant une commande du C shell: 'source fichier_initialisation'. Et ensuite je mets en marche mon script perl qui, lui-même,
appel les commandes de bioinfo via 'system("commande de bioinfo")'.
Mais je voudrais que mon script perl s'occupe également de définir les variables d'environnement de mon package de bioinfo.
Pour cela, j' ai essayé d'utiliser dans mon script Perl la commande "system" de perl pour exécuter le "source" exigé par le package de bioinfo. Mais alors, les commandes du package de bioinfo ne marchent pas. Si mes connaissances sont exactes, la commande "system" de perl crée un sous-processus, où le "source" est exécuté, et où donc les variables d'environnment sont définies. Mais ce sous-processus "meurt" après l'exécution des défintions.
De ce fait, lorsque l'exécution de 'system ... ' est terminée, les variables d'environnement sont toujours dans l'état d'avant l'éxecution de ' system'.
Corrige moi si je me trompe, car je débute sous Perl et Unix.
Merci d'avance pour ton aide.
BàT
MSP
Selon moi, tu ne pourras faire ce que tu souhaites via une commande. Tu as tres bien explique le probleme.
Le mieux est de faire une analyse de ton fichier. Ce n'est pas tres dur de reconnaitre une commande comme setenv ou export.
Tu rajoutes toi meme dans le hashage %ENV les informations.
C'est le plus simple.
Merci pour ton aide et tes conseils.
BàT
MSP
tu peux aussi faire construire ton 'fichier_initialisation' CSH par ton script Perl si tu veux avoir la main sur toutes tes variables via Perl
Partager