1.- En el cliente nombraba el array directamente y tenía que ser así:
Ver fragmento de código cliente correcto:
Using perl Syntax Highlighting
- use SOAP::Lite +autodispatch=>
- uri => 'http://192.168.1.x:80/servidor',
- proxy => 'http://192.168.1.x:80/cgi-bin/servidor.pl';
- print "El numero de codigo es ".SOAP->prueba()." \n";
- my @array = SOAP->prueba();
- print "Numero de los clientes\n";
- print "=======================\n\n";
- foreach my $valor (@array) {
- print "$valor\n";
- }
Coloreado en 0.006 segundos, usando GeSHi 1.0.8.4
En el servidor me funcionó quitando el return().
Using perl Syntax Highlighting
- sub prueba {
- # ...acceso a la base
- while (($codigo) = $sth->fetchrow_array) {
- push ( @arraycodigos, $codigo ) ;
- }
- }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
¡Ojo!, así me funcionó y desconozco si hay otra forma o si estoy cometiendo un error pero quería pasar un array que venía de una base de datos a un cliente y con dicha configuración me funcionó de un solo paso. Lo que me ayudó fue el use SOAP::Lite +autodispatch=>+trace => [qw(debug)]; ya que ahí me mostró que el array pasaba correctamente… pero solo mostraba el primer elemento.
Gracias a todos