> Afin qu'un programme en PERL soit utilisable sans devoir reinstaller tout
> les modules recquis, j'aimerai le compiler un fois pour toute. Est ce que
> quelqu'un a une idee.

Je sais qu'il existe un compilateur Perl. Mais bof, je ne l'ai jamais
essayé. S'il s'agit d'un petit programme, on pourrait aussi imaginer le
réimplémenter en sh ou en C (en liant statiquement dans le cas C).

La FAQ perl (man perlfaq3 si p.ex. sous Debian potato le package
perl-5.005-doc est installé) liste diverses solutions: un compilateur, un
pré-compilateur, etc. 

       Malcolm Beattie has written a multifunction backend
       compiler, available from CPAN, that can do both these
       things.  It is included in the perl5.005 release, but is
       still considered experimental.  This means it's fun to
       play with if you're a programmer but not really for people
       looking for turn-key solutions.

[ ... ]

       In general, the compiler will do nothing to make a Perl
       program smaller, faster, more portable, or more secure.
       In fact, it will usually hurt all of those.  The
       executable will be bigger, your VM system may take longer
       to load the whole thing, the binary is fragile and hard to
       fix, and compilation never stopped software piracy in the
       form of crackers, viruses, or bootleggers.  The real
       advantage of the compiler is merely packaging, and once
       you see the size of what it makes (well, unless you use a
       shared libperl.so), you'll probably want a complete Perl
       install anyway.

Une façon de s'assurer que les bibliothèques sont bien présentes pourrait
être de distribuer le programme dans un package (de type Debian deb, ou
SuSE/Mandrake/etc RPM, Red Hat Package Manager), avec les bonnes
dépendances. Comme je l'ai dit précédemment, cela a l'inconvénient de
limiter l'instabilité à quelques distributions et versions bien
spécifiques. 

Une autre est de faire comme les packages Perl de CPAN (Comprehensive Perl
Archive, http://www.cpan.org), soit de distribuer un Makefile.PL et une
notice d'installation standard. Une commande spéciale de Perl permet de
transférer, d'installer automatiquement, de configurer, voire compiler
lorsque des routines de support en C sont nécessaires, et installer. Enfin
je crois, moi je downloade toujours le .tar.gz à la main à fin de l'avoir
dans mon répertoire SOURCES, puis je fais perl Makefile.pl && make.
Quoiqu'avec slink et potato, installer un package standard est souvent la
seule chose nécessaire.

Enfin, il suffit de mettre des directives use; claires et de documenter
les problèmes en cas d'erreur.

> pour l'instant je tape: /usr/bin/perl leprg.pl param1
> mais j'aimerai taper: leprg param1

Pour faire cela, ajouter une ligne dans le genre de ce qui suit au
DEBUT de leprg (et ajouter le bit x avec chmod u+x leprgr, en s'assurant
que le prgr est dans un répertoire listé dans PATH).

   #! /usr/bin/perl -w

NB: les espaces à gauche sont à supprimer.

Pour comprendre le concept, essayer p.ex. un fichier avec

   #! /bin/cat

   echo truc

puis remplacer /bin/cat par /bin/sh

On appelle cela she-bang (le nom de # étant hash en US-English, et ! étant
bang. On peut aussi l'appeler octothorpe-point d'exclamation :))

--
Marc Schaefer
Chinasol, Almuñecar.


--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question.

Reply via email to