Module::Build is a system for building, testing, and installing Perl modules. It is meant to be an alternative to ExtUtils::MakeMaker. Developers may alter the behavior of the module through subclassing in a much more straightforward way than with EU::MM. It also does not require a 'make' on your system: most of the Module::Build code is pure Perl and written in a very cross-platform way. In fact, you don't even need a shell, so even platforms like Mac OS (traditional) can use it fairly easily.
The CPAN shell (and module) automates or at least simplifies the building and installation of Perl modules and extensions. It includes some primitive searching capabilities and knows how to use Net::FTP, LWP, and certain external download clients to fetch distributions from the Internet. Then it automatically tests and installs them and their dependencies.