sub AUTOLOAD { our (@ISA, $AUTOLOAD); use Symbol; my ($my_package,$method) = $AUTOLOAD =~ /^(.*)::(.*?)$/; for my $base (@ISA) { my $ref = qualify_to_ref($method,$base); next unless $ref && *{$ref}{CODE}; # $method exists as a sub in $base. my $new_glob = qualify_to_ref($method,$my_package); # Copy the code reference from the base class to this one *$new_glob = *{$ref}{CODE}; # Magic goto so AUTOLOAD doesn't appear in the caller list goto &$new_glob; } use Carp 'croak'; croak("Invalid method $method"); }