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";