does not inject a function, instead you inherit from it and the method call to import is supposed to resolve. When you call Project::Config::import(qw(foo bar));
you're not making a method call, so you don't search your inheritance tree and find Exporter
. Change that line to Project::Config->import(qwfoo bar));
and things should improve.
Incidentally most things people do with AUTOLOAD are better done by other means. (In my experience, usually by assigning a bunch of closures to functions into the current package.) AUTOLOAD is a sledgehammer that can make code more brittle than it should be. With no context I don't know whether that is true in your case.