Aha! Good question (although I probably would have technically classified this as a Meditation).

My answer is this: you use OO programming techniques when the analysis methods you've used to scope the problem at hand make OO implementation a logical choice.

Let me elaborate. Some people believe that they are using OO programming when they are actually only utilizing one of the aspects of OO -- encapsulation. Although this is a good place to start this, by itself, is not OO programming.

There are may different approaches toward decent OO design, but the one that often makes sense to me goes something like this: identification of objects in a use case/story (nouns == objects; verbs == methods); sequence diagramming; and class diagrams. I've learned to despise using graphical tools to do this work so I started diagramming these in dot and most recently have switched to using PlantUML.

Here are a couple of problems doing this in Perl:

Celebrate Intellectual Diversity


In reply to Re: Right job for the tool. by InfiniteSilence
in thread Right job for the tool. by AltGrendel

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.