If I understand you correctly, then I believe there are two problems with this,

  1. This requires that the coder using my object knows about the internal details of my object, and that the coder always knows at run time exactly what kind of object they have. I want them to be able to do_something with any subclass of Foo without having to know which subclass it is.
  2. I couldn't get your to work for me to work in all cases. When I modify the definition of $sub in the main package to call $b->do_something('bar'), I get the exact same error:
Not foo
Can't locate object method "do_something" via package "Foo"
 (perhaps you forgot to load "Foo"?) at ./foobar.pl line 20.

In reply to Re: Re: Trying to re-use code at different levels of an inherited object. by ehdonhon
in thread Trying to re-use code at different levels of an inherited object. by ehdonhon

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.