Je veux créer un script shell script à partir de Perl et faire en sorte que les variables d'environnement soient disponibles en Perl, mais je ne suis pas sûr qu'il y ait une façon élégante de le faire. De toute évidence, l'utilisation de system()
ne fonctionnera pas car il s'exécute dans un processus forké, et tous les changements d'environnement seront perdus. Je pense qu'il existe un module CPAN qui peut le faire, mais je préfère ne pas utiliser de modules externes.
J'ai vu deux solutions qui ne fonctionneraient pas dans mon cas :
-
Avoir un wrapper qui appelle le shell script, et qui appelle ensuite le Perl script. Je ne sais pas à l'avance lequel de mes script shell je dois appeler.
-
Ouvrir manuellement le shell script et rechercher les éléments suivants
arg=value
paires. Cela ne fonctionnera pas non plus car le shell script n'est pas une simple liste deARG=VALUE
mais plutôt un ensemble de conditionnalités, et les variables peuvent avoir des valeurs différentes en fonction de certaines conditions.