如何在不“安装”的情况下链接PerlIO Perl包

时间:2012-01-30 16:12:24

标签: perl cpan perl-io

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

2 个答案:

答案 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文件)。