[Perl] Como llamo a una rutina

Alejandro G. Bedoya nezumi@prodigy.net.mx
Thu, 24 Jan 2002 16:59:21 -0600


En conclusi=F3n que es mejor, el "require" o el "use"???
Ventajas/desventajas???


---
Sinceramente...
Alejandro G. Bedoya
InterAccion.COM          Ponemos su Internet en Acci=F3n




----- Original Message -----
=46rom: "Gunnar Wolf" <gwolf@campus.iztacala.unam.mx>
To: "Salvador Ortiz Garcia" <sog@msg.com.mx>
Cc: <perl@tlali.iztacala.unam.mx>
Sent: Thursday, January 24, 2002 9:50 AM
Subject: Re: [Perl] Como llamo a una rutina


> Esperate un poquito Gunnar, cada cosa en su lugar, un 'use Foo;' su=
ele
> 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-, p=
rimero 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 'packa=
ge's en
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 p=
or 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=F3du=
lo, con 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 l=
a
ejecuci=F3n de mi script.

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

Bueno... Un buen punto a tomar en consideraci=F3n a futuro. Pero buen=
o, sigo
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
+--



_______________________________________________
Perl mailing list
Perl@tlali.iztacala.unam.mx
http://tlali.iztacala.unam.mx/mailman/listinfo/perl