• Publicidad

Error de sintaxis

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

Error de sintaxis

Notapor aidewuado » 2013-01-21 09:21 @431

Estimados,
les planteo una duda, ya que creé un script más que sencillo, el cual consulta a una tabla MySQL llena un archivo de texto plano, pero al momento de ejecutar el script me sale el siguiente warning: Use of uninitialized value in concatenation (.) or string at conecta_bd.pl line 22.
Use of uninitialized value in concatenation (.) or string at conecta_bd.pl line 22.
.

He revisado el código y no logro ver dónde está el error.

El código es el siguiente:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl -w
  2.  
  3. use strict;
  4. use DBI;
  5.  
  6. my $usuario="root";
  7. my $pass="";
  8.  
  9. my $host="localhost";
  10. my $db_name="edo";
  11.  
  12. my $string_coneccion= "DBI:mysql:host=$host;database=$db_name";
  13.  
  14. my $db_1 = DBI->connect ("$string_coneccion","$usuario","$pass") or die "no conecta";
  15.  
  16. my $query = $db_1 -> prepare('SELECT atr1,atr2 FROM informe;') or die ("Error al consultar informe: ");
  17. $query->execute();
  18. my @data;
  19. open (SALIDA,">/home/scrip_perl/informe.csv");
  20. while(@data = $query-> fetchrow_array())
  21. {
  22.         print SALIDA $data[0].";".$data[1]."\n";
  23. }
  24.  
  25. close(SALIDA);
  26.  
  27. $query-> finish;
  28.  
  29. $db_1->disconnect;
  30.  
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
aidewuado
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2012-02-02 15:48 @700

Publicidad

Re: Error de sintaxis

Notapor explorer » 2013-01-21 14:31 @646

El error dice que, o bien $data[0], o bien $data[0] contiene un valor indefinido.

Podrías darle un valor por defecto, antes de imprimir:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use v5.10;
  2. while(@data = $query-> fetchrow_array())
  3. {
  4.         $data[0] //= '';
  5.         $data[1] //= '';
  6.  
  7.         say SALIDA "$data[0];$data[1]";
  8. }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
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: Error de sintaxis

Notapor aidewuado » 2013-01-21 15:09 @673

Funcionó correctamente, pero ¿cómo en otros script no me sucede eso? De hecho en este script no me dejó usar variables sin declaración.
aidewuado
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2012-02-02 15:48 @700

Re: Error de sintaxis

Notapor explorer » 2013-01-21 15:23 @683

El 'use strict;' obliga a declarar todas las variables.

Pero... el mensaje de error... es más propio de un 'use warnings;'. No sé si será cosa también del 'strict' el que salga ese error.

Cuestión de probar...
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: Error de sintaxis

Notapor aidewuado » 2013-01-21 15:29 @687

explorer escribiste:El 'use strict;' obliga a declarar todas las variables.

Pero... el mensaje de error... es más propio de un 'use warnings;'. No sé si será cosa también del 'strict' el que salga ese error.

Cuestión de probar...

oka, vale, muchas gracias por tu ayuda.
aidewuado
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2012-02-02 15:48 @700


Volver a Básico

¿Quién está conectado?

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