我正在尝试将 PerlIO::eol 包添加为我的项目的一部分而不安装它,这样所有依赖项都可以与我的脚本一起打包,而无需在每台机器上重新安装它们。我该怎么做PerlIO::eol 我不明白结构和重要文件在哪里
问问题
444 次
2 回答
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 设置为项目发行版元文件中的运行时依赖项并正常安装。
于 2012-01-30T16:50:57.060 回答
1
这取决于您打算安装哪些机器。如果它们都具有相同的操作系统(以及相同版本的库和 Perl 等),那么这可能是可能的。如果没有,您需要事先为每个计划的平台编译模块(它包含一些 .xs 文件)。
于 2012-01-30T16:42:21.233 回答