http://qs321.pair.com?node_id=112180

Object-oriented programming has been described, by many people in many places, as a style of programming where you create a thing and ask that thing to do stuff. You, as the user of that thing, don't care how it gets that stuff done, so long as it's done correctly.

I was thinking this morning about how I'd go about explaining to my coworkers why this series of modules that have been created for a project I'm on is really OO, despite the fact that there's a new() function and methods and attributes and everything.

My first thought was to describe OOP as being a hands-off manager vs. a micro-manager. Then, it hit me. A scalar is an object!

Think about it. You use this thing and you have no idea how it does its stuff. You ask for it to be there and it is. You ask it to add something to itself and it does it. You ask it to compare itself to a string and it does it. You ask it to go away by itself when it's done being used and it does. And the same goes for lists and hashes.

While the programmer may have a tougher time writing strictly OO code in Perl, every Perl programmer is using an OO environment whenever they write Perl.