[Perl] chemin absolu/relati

chemin absolu/relati [Perl] - Perl - Programmation

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
Reply

Marsh Posté le 23-03-2006 à 14:11:26   

Reply

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:


Message édité par pospos le 23-03-2006 à 14:29:58
Reply

Marsh Posté le 23-03-2006 à 14:31:54    

Je sais pas si t'as bien compris ma demande :D
 
Je met où les librairies ?
Je met quel chemin dans le "use" ?
 
Merci :)

Reply

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";
 

Reply

Marsh Posté le 23-03-2006 à 15:51:52    

Ok :D
 
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 :D
 
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 [:coch] ?

Reply

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.

Reply

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 :D


---------------
JeanBeulz, chercheur coincheur
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed