You have essentially described the modus operandi of Dist::Milla and Minilla, which I already recommend to new module authors to get started quickly. But learning to use these (takes about as long as reading their pod) doesn't really help you learn to use Dist::Zilla when you want to dig deeper.