Scroll to navigation

ExtUtils::MakeMaker::CPANfile(3pm) User Contributed Perl Documentation ExtUtils::MakeMaker::CPANfile(3pm)


ExtUtils::MakeMaker::CPANfile - cpanfile support for EUMM


    # Makefile.PL
    use ExtUtils::MakeMaker::CPANfile;
      NAME => 'Foo::Bar',
      AUTHOR => 'A.U.Thor <>',
    # cpanfile
    requires 'ExtUtils::MakeMaker' => '6.17';
    on test => sub {
      requires 'Test::More' => '0.88';


ExtUtils::MakeMaker::CPANfile loads "cpanfile" in your distribution and modifies parameters for "WriteMakefile" in your Makefile.PL. Just use it instead of ExtUtils::MakeMaker (which should be loaded internally), and prepare "cpanfile".

As of version 0.03, ExtUtils::MakeMaker::CPANfile also removes WriteMakefile parameters that the installed version of ExtUtils::MakeMaker doesn't know, to avoid warnings.


complex version ranges

As of this writing, complex version ranges are simply ignored.

dynamic config

Strictly speaking, "cpanfile" is a Perl script, and may have some conditions in it. That said, you don't need to run Makefile.PL to determine prerequisites in most cases. Hence, as of 0.06, ExtUtils::MakeMaker::CPANfile sets "dynamic_config" to false by default. If you do need a CPAN installer to run Makefile.PL to customize prerequisites dynamically, set "dynamic_config" to true explicitly (via META_ADD/META_MERGE).


Though the minimum version requirement of ExtUtils::MakeMaker is arbitrary set to 6.17 (the one bundled in Perl 5.8.1), you need at least EUMM 6.52 (with CONFIGURE_REQUIRES support) when you release a distribution.


Copyright (C) Kenichi Ishigaki.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


Kenichi Ishigaki <>

2019-01-05 perl v5.28.1