Las estructuras de datos que hemos visto en la sección anterior permiten manejar cómodamente relaciones abstractas entre datos, como por ejemplo un grafo. Los objetos llevan un poco más ella esa abstracción, pues son agregados de variables (atributos) con identidad propia que además incluyen las subrutinas (métodos) que permiten manipularlos.
Un objeto es una instancia de la clase a la que pertenece, como por ejemplo un Mercedes con placas 1234HJ pertenecería a la clase de los automóviles de lujo, o la proteína 1lfu pertenece a la clase PDB.
Los atributos de un objeto normalmente sólo pueden ser manipulados por medio de los métodos de su clase.
Una clase puede heredar componentes de otras clases, por lo que son adecuadas para representar conceptos y objetos de forma jerárquica. Por ejemplo, la clase PDB será seguramente una clase derivada de la clase proteína y ésta a su vez de la clase macromolécula, de donde heredarán el atributo 'secuencia'.
Os recomiendo que miréis en Google si no os resultan familiares estos conceptos, en el libro Advanced Perl Programming, pero recordad que la programación orientada a objetos es un estilo de programación, que tiene sus ventajas e incovenientes, que conviene conocer al menos para poder comprender programas escritos por otras personas, o para aprovechar módulos de CPAN orientados a objetos, como por ejemplo BioPerl.
Dado que las clases y objetos no son la manera más natural de usar Perl5, se han propuesto extensiones para facilitar esta manera de programar, como Moose. En cambio, Perl6 es un lenguaje naturalmente orientado a objetos.