• Publicidad

Definir variables globales

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

Definir variables globales

Notapor silva » 2015-04-29 06:36 @317

Agradecería si me pudiesen explicar cómo defino variables globales en un paquete, para que luego las pueda utilizar en otro.

Necesitaría:

1- Definir variables globales en un paquete X.
2- Asignarle valores dentro del paquete X.
3- Acceder desde otro paquete XX al valor de dichas variables.

¡Gracias!
silva
Perlero nuevo
Perlero nuevo
 
Mensajes: 82
Registrado: 2011-05-24 05:59 @291

Publicidad

Re: Definir variables globales

Notapor explorer » 2015-04-29 12:08 @547

No es recomendable hacerlo (es mejor usar una encapsulación de los datos), pero... se puede hacer. Y de varias formas.

Esta es la más inmediata:
Sintáxis: (varglobal.pl) [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/env perl
  2. use Modulo;                     # "usamos" el módulo Modulo.pm
  3.  
  4. print $Modulo::var_global;      # accedemos a una de sus variables globales
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

Sintáxis: (Modulo.pm) [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/env perl
  2. package Modulo;
  3. our $var_global = 42;
  4. 1;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Como ves, se trata de poner la jerarquía completa para acceder a las variables declaradas con our(). Tienes más información en perldoc -f our

Hay una forma de evitarlo, y es usando el módulo Exporter. En perlmod.pod, en la sección Módulos Perl, tienes una plantilla para crear un módulo. Verás ahí como declarar variables y funciones locales y globales, y que sean conocidas desde el exterior.

Otra forma sería hacer que el módulo no fuera un package, sino un trozo de código Perl normal. Entonces, en el programa principal, lo leemos con un simple do 'modulo.pl'; y ya tendríamos incorporado a nuestro programa las variables declaradas y definidas en modulo.pl.

Hay más formas...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Definir variables globales

Notapor silva » 2015-04-29 19:37 @859

¡¡¡Excelente!!! ¡Gracias!
silva
Perlero nuevo
Perlero nuevo
 
Mensajes: 82
Registrado: 2011-05-24 05:59 @291


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot] y 1 invitado