我想将项目从使用ExtUtils::MakeMaker转换为Module::Build。 由于Makefile.PL主要是默认的,Module::Build::Convert对我不起作用(见下文),我想手动转换它,但没有找到相当于INST_SCRIPT的可执行文件放在Perl的bin /目录中。
我的WriteMakefile看起来像这样。
WriteMakefile(
NAME => 'Project',
AUTHOR => q{Mugen Kenichi <mugen.kenichi@uninets.eu>},
VERSION_FROM => 'lib/Project.pm',
INST_SCRIPT => 'script/',
($ExtUtils::MakeMaker::VERSION >= 6.3002
? ('LICENSE'=> 'perl')
: ()),
PL_FILES => {},
PREREQ_PM => {
'JSON' => 0,
'Log::Log4perl' => 0,
'Proc::Daemon' => 0,
'Term::ANSIColor' => 0,
'MooseX::Declare' => 0.34,
'MooseX::Log::Log4perl' => 0,
'Moose::Util::TypeConstraints' => 0,
'MooseX::Templated::Role' => 0,
'Template' => 0,
# for testing
'Test::More' => 0,
'MooseX::Params::Validate' => 0,
'File::Temp' => 0,
'Sub::Exporter::ForMethods' => 0,
'Data::Section' => 0,
},
dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
clean => { FILES => 'Project-*' },
);
我尝试使用Module::Build::Convert但是make2build会抛出我无法解决的错误:
Variable "$regex" will not stay shared at (re_eval 32) line 1.
Use of uninitialized value $lines[0] in pattern match (m//) at /home/mak/perl5/lib/perl5/Module/Build/Convert.pm line 1305, <DATA> line 1.
perl版本:
perl -v
This is perl 5, version 12, subversion 3 (v5.12.3) built for x86_64-linux
答案 0 :(得分:1)
如果这就是 Makefile.PL 的样子,请保持原样。不要切换到Module :: Build,这似乎是一个放弃的构建系统。没有人维护Module :: Build,直到Leon Timmermans推出下一件事,除非Module :: Build中有一些你必须拥有的功能,否则没有理由转换它。
尽管如此,我创建了脚本文件列表并将其用作script_files
的值。它不是很好。查看我的Build.PL for Unicode::Tussle。