chemin vers perl automatique pour fichier exécutable

chemin vers perl automatique pour fichier exécutable - Shell/Batch - Programmation

Marsh Posté le 08-04-2003 à 16:39:36    

bonjour à tous,
 
maintenant que j'ai réussi à faire un include dynamique (voir http://forum.hardware.fr/forum2.ph [...] 19&cat=10), il me reste le problème du chemin vers Perl dynamique... en effet, je veux pouvoir faire un "programme --options..." sans placer le "perl" devant.
 
Pour le moment, je place en début de fichier :

Code :
  1. #!/usr/local/bin/perl


le problème, c'est que ce chemin change sur les différentes machines où ce script est installé, donc à chaque fois que j'installe une nouvelle version du script, je dois éditer ce chemin en fonction de la machine. N'y a t il pas un moyen de rendre ce chemin dynamique qui ne soit pas spécifique à la machine...


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 08-04-2003 à 16:39:36   

Reply

Marsh Posté le 09-04-2003 à 08:31:54    

z0rglub a écrit :

bonjour à tous,
 
maintenant que j'ai réussi à faire un include dynamique (voir http://forum.hardware.fr/forum2.ph [...] 19&cat=10), il me reste le problème du chemin vers Perl dynamique... en effet, je veux pouvoir faire un "programme --options..." sans placer le "perl" devant.
 
Pour le moment, je place en début de fichier :

Code :
  1. #!/usr/local/bin/perl


le problème, c'est que ce chemin change sur les différentes machines où ce script est installé, donc à chaque fois que j'installe une nouvelle version du script, je dois éditer ce chemin en fonction de la machine. N'y a t il pas un moyen de rendre ce chemin dynamique qui ne soit pas spécifique à la machine...


J'en deduis que tu dois etre sous Unix ?
La seule solution qui me viennent a l'esprit c'est l'encapsulation dans un script:

Code :
  1. #!/bin/sh -- # -*- perl -*- -p
  2.     eval 'exec perl -wS $0 ${1+"$@"}'
  3.         if $running_under_some_shell;


ou

Code :
  1. #!/usr/bin/env perl


 
Dans ce cas le perl se touvant dans ton path sera invoque.
 
Sinon tu reprend a la premiere syntaxe et tu ajoutes une variable d'environnement indiquant ou se trouve ton perl:

Code :
  1. #!/bin/sh -- # -*- perl -*- -p
  2.     eval 'exec $PERL_PATH/perl -wS $0 ${1+"$@"}'
  3.         if $running_under_some_shell;


Reply

Marsh Posté le 09-04-2003 à 09:29:03    

j'ai pris le plus simple :

Code :
  1. #!/usr/bin/env perl


 
ça marche nickel. Vraiment, c'est parfait, merci beaucoup  :jap:


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 09-04-2003 à 10:15:24    

z0rglub a écrit :

j'ai pris le plus simple :

Code :
  1. #!/usr/bin/env perl


 
ça marche nickel. Vraiment, c'est parfait, merci beaucoup  :jap:  


De rien, tu avais la reponse dans la doc 'perlrun'

Reply

Sujets relatifs:

Leave a Replay

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