Bonjour,
J'ai plusieurs projets qui font appel à un même répertoire lib contenant mes propres librairies perl et j'ai un problème concernant l'appel de ces librairies. Ce que j'ai actuellement est un chemin en dur pointant vers cette librairie, seulement je voudrais que ce soit portable et qu'un autre développeur puisse également avoir accès aux librairies sans qu'on n'ait à coder le chemin en dur.....
Pour expliquer plus clairement, j'ai ce genre d'arborescence:
monprojet/projet1/
monprojet/projet2/
monprojet/projet3/
monprojet/lib/
dans mes scripts sous projets1 (etc) j'ai ce require d'une librairie:
require "/usr/truc/machin/util_1.pl";
je pensais résoudre le problème de portage en mettant le chemin relatif à la place:
require "../lib/util_1.pl";
seulement ça ne fonctionne pas car la résolution du chemin ne se fait à partir du script, mais à partir de l'endroit d'où j'exécute ce script...
J'ai la solution de mettre à jour la variable $PERL5LIB, mais le problème est que j'ai 2 fois le projet sur une même machine (ce qui est indispensable pour l'instant...). Donc cela m'oblige à jongler avec la mise à jour de $PERL5LIB selon que je veux l'environnement 1 ou 2. Je ne dois pas mettre les deux chemins de mes lib dans la variable, sinon j'aurai des problème d'appel de la mauvaise librairie...!
Voilà... auriez-vous quelque chose à me conseiller ? comment ne pas avoir à mettre à chaque fois correctement à jour $PERL5LIB ? comment pouvoir utiliser correctement le chemin relatif ? Je suppose que je pourrais dans chaque script récupérer dans une variable le répertoire courant du dit script et faire qch comme :
$dir = repertoire courant de mon script
require "$dir/../lib/util_1.pl";
mais c'est pas joli joli...
Un avis ?
Merci...
Partager