in reply to Email::Find question

tachyon's post above covers the bases. Here are a few other tidbits about Object Oriented Perl as explained by TheDamian.

A class is a package. You must have seen packages in Perl before, and you probably understand that they give you a nice, fresh, separate name space for some group of data and functionality. Well, that's fundamentally all an OO class is. The main difference is that classes do not / should not Export any variables into the namespace from which it is called. It gives you the methods to do what you need, without inviting you into it's house for tea.

A method is a subroutine. Make a sub in that package/class file, and voila! You have a method that operates on the data in your class! These methods are often the only things that are allowed to play with the data in your object.

An object is a blessed referent. Here's the magic. The Perl function bless() simply associates your class' data structure with that specific class. If you dump your class object with Data::Dumper, you'll see the class name tacked on the end. This is how Perl knows that your data belongs to that class, and it bumps up your data structure's reference count so that it sticks around.

I'm a HUGE fan of OO programming. If you have the time and the motivation, I highly recommend that you grab this book: Object Oriented Perl. It's made my job so much easier and more fun! Seriously!