No, there should be no incompatibility; put in some debugging print statements and see if it's getting to the goto, or if not, why not. Are you use'ing Errno, etc.?

Here's a complete working example:

package Foo; use strict; use warnings; use Errno "EINVAL"; use Tie::Scalar; use AutoLoader; use Carp; sub constant { $!=EINVAL() } our $AUTOLOAD; sub AUTOLOAD { # this is used to 'autoload' constants from the constant() # XS function. If a constant is not found then control is passed # to the AUTOLOAD in AutoLoader. my $constname; ($constname = $AUTOLOAD) =~ s/.*:://; croak "& not defined" if $constname eq 'constant'; my $val = constant($constname, @_ ? $_[0] : 0); if ($! != 0) { if ($! =~ /Invalid/ || $!{EINVAL}) { $AutoLoader::AUTOLOAD = $AUTOLOAD; goto &AutoLoader::AUTOLOAD; } else { croak "Your vendor has not defined MMA macro $constname"; } } eval "sub $AUTOLOAD { $val }"; goto &$AUTOLOAD; } 1; __END__ sub TIESCALAR { goto &Tie::StdScalar::TIESCALAR } sub FETCH { goto &Tie::StdScalar::FETCH } sub STORE { goto &Tie::StdScalar::STORE }
$ perl -wle'use Foo; tie $x, "Foo"; $x="42"; print $x; print for grep +/auto/, values %INC' 42 auto/Foo/autosplit.ix ./auto/Foo/STORE.al ./auto/Foo/TIESCALAR.al ./auto/Foo/FETCH.al

In reply to Re: autoloading tie routines by ysth
in thread autoloading tie routines by cmac

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.