• Publicidad

Problema con strict: Global symbol requires explicit package

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

Problema con strict: Global symbol requires explicit package

Notapor hexbase » 2009-12-30 12:29 @561

Hola,

Tengo un programa que incluye su archivo de configuración de la siguiente manera:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
do "config.pl";
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4


Este archivo posee unas variables declaradas con my(), que cuando son usadas dentro del programa, producen el siguiente error: Global symbol "$algo" requires explicit package.

¿Cómo hago para solucionar el error?
hexbase
Perlero nuevo
Perlero nuevo
 
Mensajes: 7
Registrado: 2009-07-11 19:57 @873

Publicidad

Re: Problema con strict: Global symbol requires explicit package

Notapor salva » 2009-12-30 12:55 @580

Lo que declaras con my solo tiene visibilidad en el ámbito (scope) donde aparece la declaración, así que no podrás acceder a esas variables desde fuera del fichero config.pl.

Yo en tu caso, simplemente no usaría my para declarar esas variables y las dejaría como globales (si quieres puedes meterlas dentro de un package).

Luego desde el programa principal, si están en el mismo paquete, podrás acceder a ellas declarándolas con our o si están en otro paquete, utilizando el nombre completo (o sea, incluyendo el paquete en el nombre).

Por ejemplo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
# config.pl...
$foo = 23;
$bar = 42;

# script.pl
use strict;
do "config.pl";
our ($foo, $bar);
print "foo: $foo, bar: $bar\n";
 
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

o
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
# config.pl...
package My::Config;
$foo = 23;
$bar = 42;

# script.pl
use strict;
do "config.pl";
print "foo: $My::Config::foo, bar: $My::Config::bar\n";
 
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Avatar de Usuario
salva
Perlero nuevo
Perlero nuevo
 
Mensajes: 200
Registrado: 2008-01-03 15:19 @680

Re: Problema con strict: Global symbol requires explicit package

Notapor explorer » 2009-12-30 19:14 @843

Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] y 0 invitados