<update> Nevermind. It looks like the eval is just trapping the "Can't locate..." error. Strange that it prints the correct results, then. I'll look into it further when I get back from class tonight.</update>

You'll notice that the error says perl is looking for the method in the CustomMethodMaker class, instead of Bug or FixedBug, like it's supposed to.

The issue is that perl appears to be binding SUPER at the time the anonymous sub is created, to the package in which it was created. I'm really not sure why this is happening, but you can get around it by wrapping the call to the SUPER method in an eval.

# In CustomMethodMaker.pm, line 31 # Was: @parent_slots = $self->$to_execute(); # Now: eval { @parent_slots = $self->$to_execute() };

With this change, the test program outputs the following on my system:

id, type, description date_fixed, repairer

If someone more knowledgeable about the internals of Perl's OO could explain why this is happening, I'm rather curious.

bbfu
Black flowers blossom
Fearless on my breath


In reply to Re: Calling SUPER in MethodMaker-generated methods by bbfu
in thread Calling SUPER in MethodMaker-generated methods by danb

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.