I'm trying to use the fields module (on 5.8) in my OO code but it seems that fields wants to make all my "protected" fields private because they start with underscores.

This feature seems to be well documented, but not the reasoning or the "correct" way to do protected variables.

If I just remove the underscores, that now tells the users that these variables are free to use as you please, whereas they should really understand that if they choose to use them, they take responsibility for any unexpected behaviour.

If perl doesn't have a concept of protected variables, then class inheritance becomes pointless, surely.

So, how do I create variables that are visible to subclasses but tell the user not to use them if they know what's good for them?

It seems to me that making everything public and using underscores makes a hell of a lot more sense than providing private functionality but not protected.


In reply to use fields, underscores and subclasses by MattLG

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.