Ficheros .par Simples

En una primera aproximación podemos decir que un fichero .par es un fichero zip que contiene módulos.

Supongamos que estoy en una máquina (orion) que tiene instalado el módulo Parse::Eyapp:

casiano@orion:/usr/local/share/perl/5.8.8$ perldoc -l Parse::Eyapp
/usr/local/share/perl/5.8.8/Parse/Eyapp.pm
Para crear un fichero .par basta con llamar a zip:
casiano@orion:/usr/local/share/perl/5.8.8$ zip -r /tmp/orionparse.par Parse/
updating: Parse/ (stored 0%)
updating: Parse/Eyapp.pm (deflated 69%)
updating: Parse/Eyapp/ (stored 0%)
updating: Parse/Eyapp/Lalr.pm (deflated 74%)
updating: Parse/Eyapp/YATW.pm (deflated 64%)
updating: Parse/Eyapp/Treeregexp.pm (deflated 77%)
updating: Parse/Eyapp/Parse.pm (deflated 78%)
updating: Parse/Eyapp/Scope.pm (deflated 61%)
updating: Parse/Eyapp/Options.pm (deflated 63%)
updating: Parse/Eyapp/Output.pm (deflated 60%)
updating: Parse/Eyapp/Node.pm (deflated 72%)
updating: Parse/Eyapp/Grammar.pm (deflated 71%)
updating: Parse/Eyapp/Driver.pm (deflated 70%)
updating: Parse/Eyapp/Base.pm (deflated 52%)
updating: Parse/Eyapp/_TreeregexpSupport.pm (deflated 50%)
La opción -r hace que zip recorra la estructura de directorios recursivamente.

Ahora transferimos el fichero /tmp/orionparse.par a una máquina (nereida) en la cual no esta instalado Parse::Eyapp:

lhp@nereida:~/Lperl/src$ scp orion:/tmp/orionparse.par .
orionparse.par                        100%  105KB 105.0KB/s   00:00
Utilizando PAR podemos cargar el módulo Parse::Eyapp desde el fichero /tmp/orionparse.par
lhp@nereida:~/Lperl/src$ perl -wde 0
main::(-e:1):   0
  DB<1> use PAR 'orionparse.par'
  DB<2> use Parse::Eyapp
  DB<3> print $Parse::Eyapp::VERSION
1.082
  DB<4>
Tambien podemos hacerlo con un one-liner:

lhp@nereida:~/Lperl/src$ perl -MPAR=orionparse.par -MParse::Eyapp -e 'print "$Parse::Eyapp::VERSION\n"'
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