Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?

Comment on

( #3333=superdoc: print w/replies, xml ) Need Help??

Having the code for an object open and publicly readable is both an advantage and a disadvantage, sure, but from looking around at the other perl programmers I have known it is not really a problem. Sure, you can open up the object, look around, even edit it to suit your own needs, and you can access variables within the object without going through the method interface. However most people dont and, I think, with experience even those who do will stop over time. The reasons for this become obvious as you become more experienced with the rationale behind OO design. While you could access the data directly, avoiding the methods, it is not a good idea. What if the designer changes the data type between revisions? Such a change is perfectly acceptable in OO design as the underlying data is supposed to be opaque to the user of the object. This means that version 1 could store it's data as a scalar while version 2 stores it as part of a hash. However, if has been written correctly, thingy::get_data will return the same thing regardless of version.

Once you know this then it quickly becomes a good idea to just use the methods and leave the data as it is.

On the other hand, what perl programmers have over C++ (for example) programmers is direct access to the source code of that object. Now, while playing with it is not a good thing, these modules then become a vast and wonderful knowledge base that the programmer can dip into at will to help solve his or her problems.

So, if you have any sense, pretend that you cannot see into a perl object, but also make the most of the fact that you can to become a better programmer ;)

I did, and still do ;)

This page is intentionally left justified.

In reply to Re: A new take on affordance. by Caillte
in thread A new take on affordance. by frankus

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, 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, 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.
  • Log In?

    What's my password?
    Create A New User
    and all is quiet...

    How do I use this? | Other CB clients
    Other Users?
    Others rifling through the Monastery: (2)
    As of 2018-03-18 04:21 GMT
    Find Nodes?
      Voting Booth?
      When I think of a mole I think of:

      Results (228 votes). Check out past polls.