package Base; use Carp; my @methods = qw(new something something_else); my %methods; @method{@methods} = (); sub AUTOLOAD { my ($pkg, $method) = $AUTOLOAD =~ /^(.*)::(.*)$/; if (exists $method{$method}) { croak qq(Package "$pkg" must override the method "$method"); } } 1;