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:
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:
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:
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.001 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.