http://www.perlmonks.org?node_id=1015741


in reply to what format should Makefile.pl be and where is the list of attributes

Virtually all Makefile.PLs use ExtUtils::MakeMaker, except for some which are slim redirects to Build.PL in Module::Build-based distributions (which don't use makefiles).

Module::Install is just a wrapper around ExtUtils::MakeMaker. It happens to be rather a good wrapper that enables you do some useful packaging stuff automatically, like automatically create your README file from your main module's pod, automatically make you a coffee at the end of the build process, etc.

(And there's also Module::Package, which is a wrapper around Module::Install.)

package Cow { use Moo; has name => (is => 'lazy', default => sub { 'Mooington' }) } say Cow->new->name