I've done this (semi-automatically) for a module before. Module::Build provides a way to save config data (see here). Then you can access the configuration by use-ing Foo::Bar::ConfigData and calling Foo::Bar::ConfigData->config('foo');. During build, you can also write config there ($builder->config(foo => 'blah');) whenever you want. I'm sure other packaging systems have similar features.
But if you're going this way, do consider writing a regular, user-editable config file instead. It will make your life easier when deploying. More importantly, it will make the devops' life easier. Configuration done via .pm files tends to be hard to modify by regular users.
It would also allow your module to be able to run with different instances of the front end, by providing the paths to different config files, something that is harder to do with a .pm file.