Re: [Perl] módulos
Gunnar Wolf
gwolf en gwolf.cx
Mar Jun 8 13:14:36 CDT 2004
John Robeto dijo [Tue, Jun 08, 2004 at 05:40:20PM +0200]:
> Hola a todos.
> Estoy construyendo una biblioteca en Perl, qué debo
> hacer para traer a mi script el valor de una variable
> almacenada en un módulo para poder seguir tratándola
> en el script, es posible?
Hola,
A la hora de compilar las diferentes partes de tu código (tu programa
principal y tus diversos módulos), cada módulo reside únicamente en su
espacio de nombres. Típicamente verás al inicio de cada módulo
(digamos, Mod.pm) la directiva 'package Mod;'. Esto le indica a Perl
que a partir de ahí, el espacio de nombres es Mod. ¿Qué significa? Que
si en tu módulo tienes una variable global $var (declarada con 'our
$var' o, si no usas 'strict', no declarada), desde cualquier otro
módulo podrás referirte a ella como $Mod::var. Va lo mismo para los
demás tipos de datos:
Tipo Nombre Desde el módulo Desde fuera
Escalar $var $var $Mod::var
Arreglo @arr @arr @mod::arr
Hash %hash %hash %mod::hash
Función func func(), &func() Mod::func(), &mod::func()
Ahora bien, para las variables léxicas (las declaradas con my, lo que
debe significar prácticamente todas :) ), no podrán ser vistas fuera
del bloque o archivo donde fueron declaradas, ya que no tienen una
entrada en la tabla de símbolos general.
Saludos,
--
Gunnar Wolf - gwolf en gwolf.cx - (+52-55)5630-9700 ext. 1366
PGP key 1024D/8BB527AF 2001-10-23
Fingerprint: 0C79 D2D1 2C4E 9CE4 5973 F800 D80E F35A 8BB5 27AF
Más información sobre la lista de distribución Perl