in reply to Object Oriented Programming in Perl.

The only thing that really sticks out like a sore thumb is that you've disregarded the class name which is passed to your constructor. Beyond that, if you're going to just use the package to create a hashref, you might as well do it via the constructor as well, with alternative defaults. Your first sub could/should/might (TMTOWTDI) look something like this:
sub new { my ($class, $args) = @_; bless { beverage => $args->{beverage} || "Pepsi", entree => $args->{entree} || "soup", dessert => $args->{dessert} || "ice cream", }, $class; }
At this point, it's simple to add another method to get/set/modify your object's individual attributes, or as a whole. You asked for alternative resources on OOP. Honestly, I can't think of anything more rewarding than Chapter 3 of Damian's book. If you haven't sat down and read it in it's entirety, you're performing a disservice to yourself. Quite honestly, it is the bible... I had numerous lightbulbs "go off" before I was done with this chapter. :)

-fp

Update: Fixed the constructor. Thanks to Zaxo for catching the error.