export PERL5LIB=/home/barreiro/libperl perl Makefile.PL LIB=/home/barreiro/libperl PREFIX=/home/barreiro/libperl
Despues para usar las librerias en nuestros programas se pueden usar varias sintaxis
export PERL5LIB=/home/barreiro/libperl
use lib qw(/home/barreiro/libperl);
perl -I/path/to/module
En el fichero
/home/barreiro/libperl/i586-linux/perllocal.pod
Creacion en la maquina origen
mkdir /home/barreiro/install perl Makefile.PL LIB=/home/barreiro/install PREFIX=/home/barreiro/install make make install cd /home/barreiro/install tar cvfz modulo.tgz *
Instalación en la maquina destino
cd /usr/local/lib/perl tar xvfz modulo.tgz
Crear un servidor de funciones y su correspondiente cliente es muy sencillo si usamos RPCs.
Veamos el codigo del servidor de funciones:
#! /usr/bin/perl use RPC; $host="172.16.1.5"; $port="20000"; RPC->new_server($host,$port); RPC->event_loop(); sub rutina1 { my ($comando)=@_; $res=`$comando`; print "$res\n"; return "respuesta:$res"; }
El codigo del cliente es aun mas sencillo:
#! /usr/bin/perl use RPC; $host="172.16.1.5"; $port="20000"; $comando=$ARGV[0]; my $conexion = RPC->connect($host,$port); my $respuesta = $conexion->rpc('rutina1',"$comando"); print "$respuesta\n";
Crear un servidor de funciones y su correspondiente cliente es igual de sencillo si usamos el protocolo SOAP
Veamos el codigo del servidor de funciones:
#! /usr/bin/perl use SOAP::Transport::HTTP; use Demo; my $daemon = SOAP::Transport::HTTP::Daemon -> new (LocalPort => 8081) -> dispatch_to ('Demo') ; if ($daemon){ print "Acceso al servidor Soap via:", $daemon->url,"\n"; $daemon->handle; }else{ print "No puedo abrir el seervidor\n"; }
Los modulos Demo y Otro contienen las funciones que ofrece la interfaz del servidor a los clientes
#! /usr/bin/perl -w package Demo; sub hola { my ($funcion_llamada,$nombre)=@_ return "$funcion_llamada: Hola $nombre\n"; } sub adios { my ($funcion_llamada,$nombre)=@_ return "$funcion_llamada: Hola $nombre\n"; } 1;
El codigo del cliente se muestra a continuación
#! /usr/bin/perl #use SOAP::Lite +trace => all; use SOAP::Lite; my $client =SOAP::Lite->uri('Demo'); $client->proxy('http://pt2:8081/soapdaemon.pl'); my $response = $client->hola("Manuel"); print $response->result; my $response = $client->adios("Manuel"); print $response->result; print "faultcode\n"; print $response->faultcode; print "\n"; print "faultstring\n"; print $response->faultstring; print "\n"; print "faultdetail\n"; print $response->faultdetail; print "------------------------\n";