I'm no OOP expert, but one piece of advice I can give, is learn to write your scripts storing everything in a hash. That way, you can write a functional script as a prototype, and get it working, then when you want to go to OO, just containerize it, and bless the hash as $self.