Re: [l-desarrollo] Anular una función en Perl

Ernesto Hernandez-Novich emhn at telcel.net.ve
Mon Apr 7 13:20:26 CDT 2003


On Tue, 8 Apr 2003, Alejandro Imass wrote:
> Mi ambigüedad con el timino ``método'' es justamente por el arroz con
> mango que hay en SL a veces (y que Perl  amablemente permite). Tienes
> toda la razón sobre que los mitodos deberman estar en espacio de nombres
> distintos pero aún ignoro como lo maneja Perl, como te puedes dar cuenta,
> no he estudiado mucho los objetos en Perl.

package Foo;

defiene el espacio de nombres Foo, hasta que se defina otro espacio de
nombre o hasta que termine el archivo.

package Foo;
sub x {
  print "Foo!\n";
}
package Bar;
sub x {
  print "Bar!\n";
}
package main;
Foo::x();
Bar::x();

Declarar un package _no_ convierte el programa en orientado a objetos;
simplemente declara un espacio nuevo de nombres. Ese espacio nuevo de
nombres puede o no ser un Exporter; en caso afirmativo quiere decir que
tienes la potestad de escoger cuáles nombres del espacio son exportados
a usuarios, en caso negativo todos los nombres son exportados.

Para que un package ayude en el manejo de objetos, es necesario que se
construyan referencias a "algo" que hayan sido bendecidas con el nombre
de la clase, que se acostumbra sea el espacio de nombres.

package Foo;
sub new {
  my $self = { prop1 => 'val1',
               prop2 => 'val2', ...
	     };
  bless $self,'Foo';
  return $self;
}
package main;
my $foo = new Foo;    # o bien Foo->new

Perl permite el encapsulamiento pero no lo impone.

man perltoot
-- 
Ernesto Hernández-Novich - Running Linux 2.4.19 i686 - Unix: Live free or die!
Geek by nature, Linux by choice, Debian of course.
If you can't apt-get it, it isn't useful or doesn't exist.
GPG Key Fingerprint = 438C 49A2 A8C7 E7D7 1500 C507 96D6 A3D6 2F4C 85E3
¿Sabe leer? Elimine mi firma de sus respuestas; sé quién soy ;)

------------------------------------------------------------------------
Enviar e-mail a <majordomo at pm.org> colocando en el cuerpo:
"UNSUBSCRIBE caracas-pm-list" para desuscribirse.
"INFO caracas-pm-list" para conocer las reglas de etiqueta.
------------------------------------------------------------------------



More information about the caracas-pm mailing list