今年もよしなにお願いいたします
連載第18回ではlocal::libの話題を取り上げましたが,
ExtUtils::MakeMakerが生まれるまで
Perlがバージョン3でコンパイル時にユーザ独自のライブラリを組み込んで本体機能を拡張できるようになったとき
でも,
そのため1992年には早くもバズ・
ExtUtils::MakeMakerの使い方
ExtUtils::MakeMakerを使うと典型的なモジュールのMakefile.
use strict;
use warnings;
use ExtUtils::MakeMaker;
WriteMakefile(
NAME => 'MyModule::Name',
AUTHOR => 'Some Person <person@example.com>',
VERSION_FROM => 'lib/MyModule/Name.pm',
ABSTRACT_FROM => 'lib/MyModule/Name.pm',
PREREQ_PM => {
'Some::Module' => 0,
'Other::Module' => 0,
'Test::Module' => 0.88,
},
($ExtUtils::MakeMaker::VERSION > 6.30
? ( LICENSE => 'perl' )
: ()
),
);
ExtUtils::MakeMakerの問題点
Perl 5のWikiによると,
ところが,
実際,
このようなバッドノウハウの塊こそがExtUtils::MakeMakerの肝なのですが,
Module::Buildの誕生
「makeいらず」
use strict;
use warnings;
use Module::Build;
my $builder = Module::Build->new(
module_name => 'MyModule::Name',
dist_author => 'Some Person <person@example.com>',
dist_version_from => 'lib/MyModule/Name.pm',
requires => {
'Some::Module' => 0,
'Other::Module' => 0,
},
build_requires => {
'Test::Module' => 0.88,
},
# license => 'perl',
);
$builder->license('perl') if $Module::Build::VERSION > 0.06;
$builder->create_build_script;
このようにオブジェクトを明示することでモジュールの継承などがしやすくなるほか,