package AA; require BB; sub AUTOLOAD { my ($self,$extrainfo,@args) = @_; local @ISA = 'BB'; my ($method) = (split /::/, $AUTOLOAD)[-1]; $superfunk = "SUPER::$method"; $self->$superfunk(@args); } 1; #### package AA; use base 'BB'; for my $meth (qw(print flop frizzle)) { *{ $meth } = sub { my ($self, $extra, @args) = @_; my $meth = "SUPER::$meth"; $self->$meth(@args); }; } 1;