chemin absolu/relati [Perl] - Perl - Programmation
Marsh Posté le 23-03-2006 à 14:29:36
ben tu te met dans le repertoire dont tu veux qu'il soit la base pendant l'execution de ton script, et tu execute ton script avec son chemin relatif à ton repertoire
exemple:
disons que tu est dans C:
perl F:\bidule\machine\script.pl
le chemin courant pendant l'execution du script sera toujours C:
Marsh Posté le 23-03-2006 à 14:31:54
Je sais pas si t'as bien compris ma demande
Je met où les librairies ?
Je met quel chemin dans le "use" ?
Merci
Marsh Posté le 23-03-2006 à 15:23:00
ben c'est pas d'une limpidité extreme...
dans tes use tu ne met aucun chemin
par contre au tout debut de ton script (et seulement de ton script) tu met un use lib avec le chemin (relatif ou absolu) vers tes lib :
use lib "./lib";
Marsh Posté le 23-03-2006 à 15:51:52
Ok
Imagine l'arborescence
f:\lib\lib.pm
f:\prog.pl
f:\test\toto.pl
prog.pl contient : use lib "./lib" ;
je le lance, ça marche bien
si toto.pl lance prog.pl (via qx ou system), il va chercher dans le repertoire courant au moment de l'appel (donc f:\test\) un dossier lib qu'il ne va jamais trouver.
je suis obliger de faire un chdir ".." ou "f:\"
On se comprend ?
Marsh Posté le 23-03-2006 à 19:38:54
ok
dans ce cas tu peux utiliser Win32::Process (en standard avec activeperl) qui te permet de choisir le repertoir courant de l'appli que tu lance.
Marsh Posté le 23-03-2006 à 22:17:59
merci mais c'est ptet un peu chiant à utiliser
tant pis je ferai gaffe avec des chdir bien placés
Marsh Posté le 23-03-2006 à 14:11:26
Bonjour,
dans des scripts Perl, j'utilise des petites librairies maison.
Je souhaite mettre un chemin relatif (..\lib\) pour ne pas avoir à mettre la lettre du lecteur (réseau) car je lance le programme à distance (F:\) et je développe en local (O:\)
Le problème c'est que je dois appeler mon programme depuis le dossier où il est (via chdir).
Existe-t-il un moyen de laisser le chemin relatif et de lancer le programme sans le chdir ?
Message édité par nibbles1 le 23-03-2006 à 14:15:46