[Perl] Como llamo a una rutina
Salvador Ortiz Garcia
sog@msg.com.mx
24 Jan 2002 20:59:25 -0600
Est=E1s de necio, verdad?
On Thu, 2002-01-24 at 18:09, Alejandro G. Bedoya wrote:
=20
> N=F3tese el "These may be located anywhere in the main program".
N=F3tese que estabamos hablando del orden en bibliotecas y que el p=E1rrafo
que citas habla del lugar de la definici=F3n.
=20
> Lo que me refiero con todo esto es que no importa el orden de las funcion=
es,
> como en javascript, donde no puedes llamar una funci=F3n sin haberla decl=
arado
> antes. O como en antiguo PASCAL, que tenias que escribir tu funcion antes=
de
> llamarla. A Perl no le importa la posici=F3n de la funcion. El que las es=
tes
> programando inadecuadamente es otra bronca.
El que no uses par=E9ntesis donde no los necesitas no implica que est=E9s
programando inadecuadamente, pues aunque usted no lo crea, perl es de
los pocos lenguajes en que un par de par=E9ntesis de m=E1s cambia la
sem=E1ntica de las cosas, as=ED que la practica com=FAn de ignorar la
precedencia mediante parentizar a raja tabla, puede resultar
peligros=EDsimo. C.f. ejemplo com=FAn de 'my $a =3D ...' vs 'my($a) =3D ...=
'
El que el tu veas un foo(bar) no implica que bar sea par=E1metro de la
funci=F3n foo, pues eso depende de la declaraci=F3n de foo.
En resumen, el que perl no requiera, por default que declares las cosas
como en otros lenguajes, no implica que no importe si las declaras o no,
y puesto que el orden de las declaraciones importa y como las
definiciones pueden implicar declaraciones su orden tambi=E9n puede
importar.
Y volviendo al punto original, como el valor devuelto por 'do' es el de
la _=FAltima_ sentencia evaluada la _mejor_ forma para garantizar que 1;
(o cualquier otro valor 'verdadero') sea =E9sa =FAltima sentencia es ponerl=
a
al final.
Saludos.
Salvador Ortiz.