我正在尝试将PerlIO :: eol包作为我项目的一部分添加而不安装它,这样所有依赖项都可以与我的脚本一起打包,而无需在每台机器上重新安装它们。 我怎样才能为PerlIO::eol做到这一点 我不明白结构和重要文件的位置
答案 0 :(得分:3)
创建子目录inc
并在那里移动解压缩的PerlIO-eol发行版。然后,在项目的Build.PL
:
use Config qw(%config);
use Module::Build qw();
my $build = Module::Build->subclass(code => q(sub ACTION_inc2blib {
my ($self) = @_;
chdir 'inc/PerlIO-eol';
system $^X, 'Makefile.PL';
system $Config{make};
chdir '../..';
}))->new(
module_name => 'Foo::Bar',
license => 'restrictive',
dist_abstract => 'blah',
);
$build->dispatch('inc2blib');
$build->create_build_script;
然后,在您的主程序use blib 'inc/PerlIO-eol';
中。
但那是BFI,您应该将PerlIO :: eol设置为runtime dependency in your project distro's metafile并正常安装。
答案 1 :(得分:1)
这取决于您计划安装的计算机。如果它们都具有相同的操作系统(以及相同的版本库和Perl等),那么它可能是可能的。如果没有,您需要事先为每个计划平台编译模块(它包含一些.xs文件)。