0

我正在尝试将 PerlIO::eol 包添加为我的项目的一部分而不安装它,这样所有依赖项都可以与我的脚本一起打包,而无需在每台机器上重新安装它们。我该怎么做PerlIO::eol 我不明白结构和重要文件在哪里

4

2 回答 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 回答