Is calling a callback i.e. code reference as method on an instance the accepted and OK practice, to begin with?

What it is doing is normal practice. I would say it is not calling it "as a method" - clearly there is no method lookup occurring here. The callback is documented (by comments) as a private function, and as such it is not expected to be overridden. In this case $self->$callback(...) is just a convenient alternative to $callback->($self, ...).

Maybe you can explain more about what you are trying to do: how is your subclass of CAM::PDF intended to differ from the base class, and how does that affect what setObjNum should do?

Depending on your intention, it is entirely possible that your class should implement its own setObjNum to do what it needs to do independently, either before or after calling the SUPER:: (or maybe NEXT::) method. Or you could wrap it with some variant of Moose to use one of its before, after, around keywords.


In reply to Re: Methods, within a class, pass callbacks; how to deal with that in derived class? by hv
in thread Methods, within a class, pass callbacks; how to deal with that in derived class? by Anonymous Monk

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.