mhm. Is that an issue of subclassing, of aggregation, or of mutiple inheritance? Difficult to tell without synopsis.

See Anno's Alter package (RFC: Alter - Perl extension for Alter Ego Objects); may be that only adds to the confusion, but I have a gut feeling it addresses your problem. Maybe I'm wrong.

If what you are doing is "method aggregation" (sorry for not using/knowing the canonical term for that), - if you want to call a method based on an object's attribute, you could just use that attribute to handle method dispatch via AUTOLOAD (which more aptly should be called AUTODISPATCH, since loading is only one use for it, as in AutoLoader). The loading of that attribute's package would have to be done in the object constructor.

Example:

sub AUTOLOAD { return if $AUTOLOAD eq __PACKAGE__.'::'.'DESTROY'; my $self = shift; (my $func = $AUTOLOAD) =~ s/.*:://; if ($self->{extension}) { my $method = join '::', __PACKAGE__, $self->{extension}, $func +; $method->($self,@_); } else { die "method $func not defined for $self\n"; }; }

But that has the strong smell of reinventing a wheel. Method lookup based on object attribute? hmm...

--shmem

_($_=" "x(1<<5)."?\n".q·/)Oo.  G°\        /
                              /\_¯/(q    /
----------------------------  \__(m.====·.(_("always off the crowd"))."·
");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}

In reply to Re^3: converting to a sub-class by shmem
in thread converting to a sub-class by Cagao

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.