[Perl] Como llamo a una rutina

Gunnar Wolf gwolf@campus.iztacala.unam.mx
Thu, 24 Jan 2002 09:50:49 -0600 (CST)


> Esperate un poquito Gunnar, cada cosa en su lugar, un 'use Foo;' suele
> implicar que Foo.pm crea un namespace (package) Foo, y que adem=E1s puede
> 'importar' a tu namespace cierta sem=E1ntica (via Foo->import()).
>
> Adem=E1s, y para facilitarle la lectura al respetable, un 'use foo;' con
> la primera en min=FAsculas, suele reservarse para 'pragmas'.
>
> As=ED que si no quieres implicar ninguna de las dos cosas es mejor el
> require, que por si fuera poco le mete menos carga.
>
>    "Si ys usas 'package' est=E1s haciendo un m=F3dulo,
>     para cargar con 'use', si no, est=E1s haciendo una biblioteca,
>     para cargar con 'require'"

=D3rale... Curioso... Yo uso m=F3dulos -adem=E1s de por costumbre-, primero=
 que
nada, porque me gusta diferenciar a ojo mis archivos - Los .pl son
ejecutables, los .pm son m=F3dulos. Es muy raro que cree o use 'package's e=
n
mis programas, o que juegue con el espacio de nombres en general... S=ED,
veo que hay una sutil diferencia en la documentaci=F3n - de perlfunc, en el
inciso de use:

(...)
It is exactly equivalent to

    BEGIN { require Module; import Module LIST; }

except that Module must be a bareword.

con lo que, al usar require, me ahorro el import Module LIST;

Sin embargo... Bueno, puede que sea un poco de perversi=F3n de Perl por mi
parte (o puede ser un simple caso m=E1s de TIMTOWTDI), pero yo muchas veces
incluyo algo de inicializaci=F3n en mis m=F3dulos... Por ejemplo, si tengo =
un
m=F3dulo com=FAn a todos mis scripts en un sistemita que requiere
autenticaci=F3n de usuario, hago la autenticaci=F3n dentro del m=F3dulo, co=
n lo
que basta con que yo indique 'use modulo' para que no tenga que
preocuparme por autenticar usuarios... Va lo mismo para inializar
variables, establecer la conexi=F3n a la BD, etc. antes de iniiciar la
ejecuci=F3n de mi script.

Si estuviera usando require... Hmmm... Bueno, por convenci=F3n el require s=
e
pone hasta arriba, as=ED que se seguir=EDa cumpliendo... Mmmmmm... Tienes
raz=F3n, no hay mucha diferencia ;-)

Bueno... Un buen punto a tomar en consideraci=F3n a futuro. Pero bueno, sig=
o
prefiriendo los .pm a .pl para mis modulitos :)

Saludos,

--
Gunnar Wolf - gwolf@campus.iztacala.unam.mx - (+52-55)5623-1118
+---
|PARTICIPA EN EL CONSOL - Congreso Nacional de Software Libre,
|http://www.consol.org.mx, Ciudad de M=E9xico, 11-14 feb 2002
+--