• Publicidad

Impresión innecesaria de hash

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Impresión innecesaria de hash

Notapor sarriaga » 2014-08-01 11:20 @514

Hola, ¿qué tal, compañeros perleros? Tengo un problema con uno de mis módulos que genera etiquetas con barcode, pero al hacer un return de un hash me lo imprime en el navegador y no quiero que aparezca.

Este método del módulo hace bien la función que necesito:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. package Modulo_arts;
  2.  
  3. sub exportar_valores {
  4.     my ($self, $dbh) = ( shift, &$connect );
  5.  
  6.     my $numero      = ( $dbh->selectall_arrayref("SELECT * FROM TABLA1") );
  7.     my $nombre      = ( $dbh->selectall_arrayref("SELECT NOMBRE FROM TABLA2 WHERE ID=$numero->[0]->[0]-1") );
  8.     my $timestamp   = &$get_now;
  9.     my $opciones    = $q->param('opciones ');
  10.     my $descripcion = $q->param('DESCRIPCION');
  11.     my %valores_parametros;
  12.     $valores_parametros{opciones} = $opciones;
  13.     $valores_parametros{nombre}   = $nombre->[0]->[0];
  14.     $valores_parametros{numero}   = $numero->[0]->[0] - 1;
  15.     %valores_parametros;                                    # este es un return de los valores
  16. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


En este código es donde importo el hash, que al ejecutar el script, el hash me lo imprime en pantalla, y no lo necesito.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use Modulo_arts;
  2. use LWP::Simple;
  3.  
  4. my $cgi                = CGI->new;
  5. my $arts               = Modulo_arts->new;
  6. my %valores_parametros = $art->exportar_valores;
  7. my $opciones           = $valores_parametros{opciones};
  8. my $nombre             = $valores_parametros{nombre};
  9. my $consecutivo        = $valores_parametros{numero};
  10. my $impresora          = 'impresora_chica';
  11. my $numero_copias      = 3;
  12.  
  13. my $parametros                = "nombre=$nombre&opciones=$opciones&numero=$numero";
  14. my $path                      = 'http://' . $server . '/cgi-bin/scripts/generator_etiq.pl';
  15. my $address->{etiquetaNombre} = "$path?$parametros";
  16. my $etiqueta_nombres          = get( $address->{etiquetaNombre} );
  17.  
  18. for ( my $con = 0; $con < $numero_copias; $con++ ) {
  19.     open( CMD, "| lpr -P $impresora-o portrait -o fit-to-page -o media=Custom.3x1.5in" );
  20.     print CMD $etiqueta_nombres;
  21.     close CMD;
  22. }
  23. }
  24.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Espero puedan ayudarme, quedo en espera de sus comentarios.
Saludos
sarriaga
Perlero nuevo
Perlero nuevo
 
Mensajes: 69
Registrado: 2013-10-21 08:42 @404

Publicidad

Re: Impresión innecesaria de hash

Notapor explorer » 2014-08-01 12:24 @558

En principio, no veo dónde puede estar el error.

Veo las siguientes cosas raras:
  • en el programa, a la hora de llamar a exportar_valores(), lo haces sobre el objeto $art, pero en el código lo llamaste $arts. Si te funciona, es una prueba de que no se trata de un método de un objeto, sino de una función de clase
  • sobra una llave al final
No veo nada más... o está muy oculto.

Deberás encontrar la línea que provoca la salida a pantalla.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Impresión innecesaria de hash

Notapor sarriaga » 2014-08-04 11:14 @509

Así es, al llamar exportar_valores() sí es $arts, fue error de dedo :? y la línea donde envío los datos en el método es solo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. %valores_parametros; # este es un return de los valores
  2.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


O no sé si en el código, en el print CMD $etiqueta_nombres; haga la impresión de etiqueta y al mismo tiempo los valores.
sarriaga
Perlero nuevo
Perlero nuevo
 
Mensajes: 69
Registrado: 2013-10-21 08:42 @404


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados