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.pmPara 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:00Utilizando 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