This fairly well summarizes my views of (the most important part of) OO. Essentially you want to manage instances and scope. Polymorphism, inheritance, and encapsulation are given as the 3 tenets, but the first is the concept of keeping instance data and functions clean and orderly. It's possible to write code in a non-OO way that reaps 80% of the gains. You can go a heck of a long way with C code that always takes pointers to structs as first arguments...it's just less sugary. Perl is somewhere between that C-style and languages that fully
require OO. I'd like it to move a little more right, but not all the way to the right.