Ejecutables en un .par

Es posible añadir ficheros ejecutables a un fichero .par. El módulo Parse::Eyapp viene con el ejecutable eyapp. Añadámoslo al fichero .par:

casiano@orion:/usr/local/share/perl/5.8.8$ which eyapp
/usr/local/bin/eyapp
casiano@orion:/usr/local/share/perl/5.8.8$ cd /usr/local/bin/
casiano@orion:/usr/local/bin$ zip -r /tmp/orionparse.par eyapp
  adding: eyapp (deflated 59%)
casiano@orion:/usr/local/bin$

Transferimos de nuevo el fichero .par a la máquina nereida:

lhp@nereida:~/Lperl/src$ scp orion:/tmp/orionparse.par .
orionparse.par                          100%  108KB 108.0KB/s   00:00
Siempre es posible listar los ficheros que forman parte de una distribución usando unzip con la opción -l:
lhp@nereida:~/Lperl/src$ unzip -l orionparse.par
Archive:  orionparse.par
  Length     Date   Time    Name
 --------    ----   ----    ----
        0  11-02-07 12:40   Parse/
   135815  11-01-07 13:14   Parse/Eyapp.pm
        0  11-02-07 12:40   Parse/Eyapp/
    29574  09-17-07 16:38   Parse/Eyapp/Lalr.pm
     8178  09-17-07 16:17   Parse/Eyapp/YATW.pm
    51402  11-01-07 13:17   Parse/Eyapp/Treeregexp.pm
    52766  11-01-07 13:17   Parse/Eyapp/Parse.pm
    11069  09-17-07 16:40   Parse/Eyapp/Scope.pm
     6314  09-17-07 16:39   Parse/Eyapp/Options.pm
     8826  09-17-07 17:53   Parse/Eyapp/Output.pm
    23784  09-17-07 16:17   Parse/Eyapp/Node.pm
    13832  09-17-07 16:38   Parse/Eyapp/Grammar.pm
    17865  11-01-07 13:05   Parse/Eyapp/Driver.pm
     3673  09-17-07 16:37   Parse/Eyapp/Base.pm
     3296  09-17-07 16:40   Parse/Eyapp/_TreeregexpSupport.pm
     7102  11-02-07 12:40   eyapp
        0  07-10-08 10:22   Math/
        0  08-08-08 12:08   Math/Prime/
     5635  05-14-08 15:30   Math/Prime/XS.pm
 --------                   -------
   379131                   19 files
El programa par.pl permite ejecutar ficheros en un archivo .par:
lhp@nereida:~/Lperl/src$ par.pl orionparse.par eyapp -V
This is Parse::Eyapp version 1.082.
Por defecto par.pl busca por un ejecutable con nombre main.pl.

También puedo extraer el ejecutable:

lhp@nereida:~/Lperl/src/tmp$ unzip orionparse.par eyapp
Archive:  orionparse.par
  inflating: eyapp
y a continuación ejecutarlo usando el módulo PAR:
lhp@nereida:~/Lperl/src/tmp$ perl -MPAR=orionparse.par eyapp -V
This is Parse::Eyapp version 1.082.

Casiano Rodríguez León
Licencia de Creative Commons
Principios de Programación Imperativa, Funcional y Orientada a Objetos Una Introducción en Perl/Una Introducción a Perl
por Casiano Rodríguez León is licensed under a Creative Commons Reconocimiento 3.0 Unported License.

Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=43.
2012-06-19