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:
Using perl Syntax Highlighting
#!/usr/bin/env perl
use Modulo; # "usamos" el módulo Modulo.pm
print $Modulo::var_global; # accedemos a una de sus variables globales
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
Using perl Syntax Highlighting
#!/usr/bin/env perl
package Modulo;
our $var_global = 42;
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 ourHay 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...