Ideas: (edited to include AUTOLOAD)

A reasonable strategy for the key might be to shift $self from @_ and convert the array to canonical JSON (adding object serialization TO_JSON calls as needed). The value could be handled similarly.

AUTOLOAD seems like the right hook for simplifying the interposition. Basically make both the record and replay objects have only AUTOLOAD methods, which then dispatch to the sub-object in the record case and only convert the key and look for the stored value.

"Impersonation" might be as simple as overloading isa()?

.

Maybe I have enough pieces to play around with this, but any advice is still greatly appreciated.


In reply to Re: Mock+ object with recording? by skef
in thread Mock+ object with recording? by skef

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.