• Publicidad

Error cuando agrego use

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Error cuando agrego use

Notapor scout » 2009-11-06 20:10 @882

Tengo una subrutina muy bonita que por separado va bien... funciona y me canta al oído... pero en cuanto le pongo al inicio lo siguiente (es lo que tengo que usar en el programa completo), aparece el error que adjunto... ¿A alguno se le ocurre por qué puede ser...?

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use strict;
use warnings;
use diagnostics;
use Term::Menu;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Unquoted string "informelogico" may clash with future reserved word at
        c:\perl\informesv2.pl line 58 (#1)
    (W reserved) You used a bareword that might someday be claimed as a
    reserved word.  It's best to put such a word in quotes, or capitalize it
    somehow, or insert an underbar into it.  You might also declare it as a
    subroutine.
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


El código

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
sub sqlaltas
{
my $informelogico =0;
$sql = "select bla bla bla";
# creo  nombre logico  y archivo fisico
open (informelogico,">c:/carpeta/informe.sql");
# paso informacion variable sql al archivo
print informelogico $sql;
# Fin de línea y nueva línea para un posible nuevo registro.
 print informelogico "\n";
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Última edición por explorer el 2009-11-07 05:28 @269, editado 2 veces en total
Razón: Ortografía, bloques de código
scout
Perlero nuevo
Perlero nuevo
 
Mensajes: 228
Registrado: 2009-10-28 13:50 @618

Publicidad

Re: error cuando agrego use ....

Notapor explorer » 2009-11-07 05:25 @267

A ver... tienes que fijarte un poco más ;)

Con la ayuda de warnings y diagnostics has conseguido que Perl te avise de cualquier cosa rara que ocurra en tu código, y además, que te la explique profusamente.

El mensaje de AVISO (no de error) dice:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Unquoted string "informelogico" may clash with future reserved word at
        c:\perl\informesv2.pl line 58 (#1)
    (W reserved) You used a bareword that might someday be claimed as a
    reserved word.  It's best to put such a word in quotes, or capitalize it
    somehow, or insert an underbar into it.  You might also declare it as a
    subroutine.
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


que traducido es:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Cadena "informelogico" no entrecomillada puede concordar con futuras palabras reservadas, en
        c:\perl\informesv2.pl línea 58 (#1)
    (W reservado) Has usado una palabra que puede que algún día sea usada como
    palabra reservada. Es mucho mejor poner una palabra suelta entrecomillada, o en mayúsculas,
    o insertar un guión bajo en ella. También puedes declararla como una
    subrutina.
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Así que ya sabes: la solución es, en este caso, pasarla a mayúsculas:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
sub sqlaltas {
    my $informelogico;
    $sql = "select bla bla bla";

    # creo  nombre lógico  y archivo físico
    open (INFORMELOGICO, ">c:/carpeta/informe.sql");

    # paso información $sql al archivo
    print INFORMELOGICO $sql;

    # Fin de línea y nueva línea para un posible nuevo registro
    print INFORMELOGICO "\n";
 
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


pero, repito: es un aviso. El programa funcionará bien a pesar de todo. Solo tienes que quitar el warnings y el diagnostics y verás que no sale nada en pantalla. De ti depende hacerle caso Perl o no.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: error cuando agrego use ....

Notapor kidd » 2009-11-07 16:31 @730

Y mejor sería usar:


Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1.     # creo  nombre lógico  y archivo físico
  2.     open my $INFORMELOGICO, ">", "c:/carpeta/informe.sql" or die $!;
  3.  
  4.     # paso información $sql al archivo
  5.     print {$INFORMELOGICO} $sql;
  6.  
  7.     # Fin de línea y nueva línea para un posible nuevo registro
  8.     print {$INFORMELOGICO} "\n";
  9.  
  10.     close $INFORMELOGICO;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Re: Error cuando agrego use

Notapor reLlene » 2012-10-01 10:07 @463

¿Existe alguna diferencia "sustancial" entre INFORMELOGICO y $INFORMELOGICO a la hora de definir el nombre del archivo lógico, o da igual? Porque lo he visto de las dos formas y el funcionamiento es el mismo :?
Sexo : unzip ; strip ; touch ; grep ; finger ;mount ; fsck ; more ; yes ; umount ; sleep.
Avatar de Usuario
reLlene
Perlero nuevo
Perlero nuevo
 
Mensajes: 97
Registrado: 2012-06-04 07:16 @344

Re: Error cuando agrego use

Notapor explorer » 2012-10-01 11:24 @517

Sí hay diferencia...

Si declaras una variable escalar como gestor de archivos, podrás pasarlo sin muchos problemas a través de funciones:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. open my $ARCHIVO, '<', 'miarchivo.txt';
  2. procesa($ARCHIVO);
  3. close   $ARCHIVO;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


por lo demás... es casi igual. Pero lo recomendado es usar variables escalares.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Intermedio

¿Quién está conectado?

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

cron