Thanks for this nice howto. — Just a little nitpick. In the section "Choosing packaging tools" you say
ExtUtils::MakeMaker is the older of these two modules and can generate only Makefile.PL files. Module::Build generates both Build.PL and, if requested, Makefile.PL files, as well.
ExtUtils::MakeMaker does not generate a Makefile.PL. Makefile.PL is a Perl script that writes a Makefile using ExtUtils::MakeMaker. The Makefile.PL itself is either written manually, or generated by other tools such as ExtUtils::ModuleMaker, h2xs, Module::Build::Compat, etc. Likewise, Module::Build doesn't generate a Build.PL. Rather, Build.PL uses Module::Build to generate a Build script.
(From what you elaborate on further down, it becomes evident that you're perfectly aware of this, so it's just a matter of fixing the wording of those two sentences...)