I think the question is begging for the ability to set more complex data typing that just the 7 that perl has to offer. For example, if I only want data items of a certain class, or that derive from a given class. Or if I only want to include positive numbers, instead of negatives.

In addition, you need to consider read-only, write-only, and completely private variables. While the latter can be hidden elsewhere, you'd need to have a way to define this.

Both are possible to include in the setup you have. The read-write-edness of the variable can be done by using arrays as the values for the attributes hash, using the second element of the array as "r", "rw", "w", or undef/0 for private variables.

The former option, I would suggest that the 'type' can be several things. If a scalar, it can either be the 7 defined perl types, or if not one of those, then a possible class name (such that the argument can be checked by an ISA relationship. If an array, then the arguement can be any one of the types or ISAs in that array. Finally, if the passed argument is a coderef, then when setting, the code should be checked to see if what is passed matches the code, else you lead to failure.


Dr. Michael K. Neylon - mneylon-pm@masemware.com || "You've left the lens cap of your mind on again, Pinky" - The Brain

In reply to Re: Re{2}: Idea on a Base class API by Masem
in thread Idea on a Base class API by dragonchild

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.