When writing an AUTLOAD function it commonly looks like
sub AUOTLOAD { my $fn = something_clever_returning_fn_reference; goto &$fn; }
this "magic" goto makes it look like the AUTOLOAD never happened by overwriting the call stack. My question is how to do this for methods. You could do
sub AUOTLOAD { my $self = shift; my $m = something_clever_returning_method_name(); $self->$m(@_); }
but the call stack would still show the AUTOLOAD So, I thought of this
sub AUTOLOAD { my $self = $_[0]; my $m = something_clever_returning_method_name(); my $sub = $_[0]->can($m) || $_[0]->can("AUTOLOAD"); die "Can't call $m on $_[0]" unless defined($sub); goto &$sub; }
I don't see why this would be wrong. Are there any drawbacks to this method? I've never seen it used before. Why do all the tutorials show how to use the magic goto &$sub for functional programming but never for OO?

In reply to goto and AUTOLOADed methods by fergal

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.