a way of implementing an interface in a fool proof fashion with compile time enforcement on required virtual methods

Frankly that sounds like you should re-examine your requirements. Compile-time checking on including specific methods is likely to be nearly a joke in Perl, IMO, because in Perl an "interface" is simply the name of the method. Checking that you got the name of the method right seems a pretty hollow insurance policy and not something I'd call "fool-proof".

I'd be more impressed with tests that verify more than just the names of the methods and would run those tests before checking code in rather than jump through hoops trying to test at compile time.

- tye        


In reply to Re: How best to implement multiple interfaces in perl (fools) by tye
in thread How best to implement multiple interfaces in perl by starbuck

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.