Introducción
Las características de la Programación orientada a objetos en Perl pueden resumirse en:
- Para crear una clase se construye un ''package''
- Para crea un método se escribe una subrutina
- Para crear un objeto, se bendice (bless) una referencia.
Los objetos Perl son datos normales como hashes y arrays que han sido
''bendecidos'' en un paquete.
- Constructores: Son rutinas que retornan una referencia a un objeto
recién creado e inicializado.
- Destructores: Los destructores son rutinas que son llamadas cuando un objeto deja de existir
porque deja de ser referenciado o porque su ámbito termina.
- Herencia: Perl soporta herencia de clases, simple y múltiple.
- Sobrecarga: Los métodos pueden sobrecargarse. El módulo
overload
permite la sobrecarga de operadores.
Sigue un ejemplo que gestiona una biblioteca:
package Biblio::Doc;
use strict;
{
my $_count = 0;
sub get_count { $_count }
sub _incr_count { $_count++ }
}
sub new {
my $class = shift;
my ($identifier, $author, $publisher, $title, $year, $url) = @_;
$class->_incr_count();
my $paper = {
_identifier => $identifier,
_author => $author,
_publisher => $publisher,
_title => $title,
_year => $year,
_url => $url
};
bless $paper, $class;
}
sub get_identifier { $_[0]->{_identifier} }
sub get_author { $_[0]->{_author} }
sub get_publisher { $_[0]->{_publisher} }
sub get_title { $_[0]->{_title} }
sub get_year { $_[0]->{_year} }
sub get_url { $_[0]->{_url} }
sub set_url {
my ($self, $url) = @_;
$self ->{_url} = $url if $url;
return ($self ->{_url});
}
1;
La clase Biblio::Doc
se implanta a través del package
Biblio::Doc
package Biblio::Doc;
use strict;
...
Subsecciones
Casiano Rodríguez León
Principios de Programación Imperativa, Funcional y Orientada a Objetos Una Introducción en Perl/Una Introducción a Perl
por Casiano Rodríguez León
is licensed under a Creative Commons Reconocimiento 3.0 Unported License.
Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=43.
2012-06-19