|Think about Loose Coupling|
i hope i'm right here because i didn't discover something really new. But the little insights i've had are amazing to me.
First about the stuff i do: Writing shell script replacements, filters, reporting utils, text processing utils, Nagios plugins, CGI a.s.o. Sounds simple, but this tasks can often be very tricky and are the eye of a needle in many cases.
I ended up writing plain old perl modules that wrap plain old perl objects (instead of inheriting me to death). That works but doesn't look really good.
But when i use Moo, i can have many little roles delegating something (or not) and i can connect them in a main class via attributes. The results look to me a bit like stuff the Ruby or Ada fanboys do: Very small units having the same structure and each unit having just a few statements.
And it's fast and has some type safety for free. This is very, very nice. I hope that the spanish OO inquisition doesn't blame and punish me to Autodafé.