It's bad practice because if you access object data from outside the object's class, you make it difficult to change how that object operates internally later. One of the goals of OOP is to present a well-defined interface to the outside world (a class's methods) so that you can refactor the inside while keeping the client code the same.

Suppose that in a new version of your class, you change how the data is represented internally in the hash. You also change your accessor methods to deal with the new data format and you confirm that they return the same results as before with unit tests. As long as everybody was using the accessors to get the data, everything's hunky-dory. But that one guy who accessed the hash data directly will now have broken code.


In reply to Re^6: How do I print the page header/footer from an excel spreadsheet by friedo
in thread How di I print the page header/footer from an excel spreadsheet by boat73

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.