Object Oriented Programming in Perl
Introduction
Object-oriented programming (or OOP for short) is a software-design paradigm that allows for writing more re-usable and more elegant code by declaring classes that define the functionality that their various instances, called objects have.
There's a myth going on that Perl is not an object-oriented language. It's not true and starting from Perl 5 (which has been the standard Perl version since 1994), Perl has had support for a very powerful and flexible object system. While it is true that Perl does not force one to program using object-oriented programming (because it is often an overkill), it does allow OOP when one needs and wants to.
Moose
Moose is a post-modern object system for Perl. It supports a meta-object protocol, has a built-in type system, support roles, and is considered the modern way to do object-oriented programming in Perl. The Moose homepage contains a lot of information about it including introductory talks, articles, and links.
Tutorials
Beginning Perl
The 11th chapter of this book for Perl beginners (including absolute beginners) covers Objects. This book was written by one of the foremost Perl experts.
Perl for Perl Newbies Series
The third talk in the series explains objects in detail, although from a very low level and how they work behind the scenes.