Perl脚本中使用了两个非核心模块:XML :: Simple和SOAP :: lite.我正在使用的版本(目前在Windows上)是StrawBerry Perl,所以这两个模块已经包含在内.但是,我们不知道最终用户(Unix / Linux系统)是否具有这两个模块,因为它们可能只有标准版本,因此只有核心模块.我的目标是让最终用户尽可能少地进行配置/安装.
首先,我试着看看是否有类似于XML :: Simple和SOAP :: lite的核心模块.不幸的是,我没有发现任何问题(如果我错了请纠正我).
所以我想现在唯一的选择是重新分配这两个模块.我查了一下,这两个模块允许重新分配.我现在的问题是如何做到这一点.我尝试使用关键字“perl redistribute”搜索,但没有找到任何有用的东西.我的猜测是我们使用导出工具来实现这一目标.但这两个模块是相当复杂的模块,它们有几个嵌套的文件夹/ pm文件(以及一大堆其他文件,如MAKE,pod,ini文件),所以我不确定我应该做什么.我使用导出器找到的示例相当简单:它们只有1 pm文件和1 pl文件,它们被放在一个文件夹中.
此外,我愿意接受任何其他更好的方法来解决问题.目标只是确保所有最终用户都可以使用我的脚本进行最少的配置/安装工作,因为我们不希望它们遇到一大堆兼容性问题.
任何帮助,将不胜感激.谢谢! = d
解决方法 关于Perl的最好的事情之一是CPAN,即Perl Perlling Archive网络.它是一种镜像服务,因为Perl 5最初出现的时间允许人们通过标准的通用工具(Perl附带的cpan客户端)共享有用的附加模块,如XML :: Simple或SOAP :: lite.几乎所有的Perl发行版(例如StrawBerry Perl和linux附带的大多数Perl发行版)都配置了CPAN客户端并将其包含在内.该客户端允许人们通过知道模块的名称从CPAN下载和安装模块.CPAN上的几乎所有模块分布都遵循完全相同的布局.它们通常有一个Makefile.PL文件(如果它使用ExtUtils :: MakeMaker来生成安装脚本),Build.PL文件(如果它使用Module :: Build来生成安装脚本),或两者都有.这些Perl脚本一旦运行,就会创建一个“Makefile”或“Build”文件,可以让您安装模块并验证是否满足所有先决条件.
如果您之前从未进行过Perl发行版,则可以从CPAN下载任何所需的发行版,并查看内容的布局.一旦你看到文件夹和文件位置非常直观.它们通常使用安装脚本和根目录中的支持文件(如自述文件),使用lib目录中的自定义模块(您创建的模块)以及t目录中的单元测试进行布局.
如果你是新手,我建议你看看基于Build.PL的那些;这些是基于Perl的纯安装脚本.如果您决定使用基于Module.PL的发行版,那么很容易指定您的模块发行版需要XML :: Simple和SOAP :: lite.首先,创建一个基本的Module :: Build安装脚本.这看起来像:
use Module::Build;my $build = Module::Build->new( module_name => 'Foo::bar',license => 'perl',requires => { 'perl' => '5.6.1','Some::Module' => '1.23','Other::Module' => '>= 1.2,!= 1.5,< 2.0',},);$build->create_build_script;
(这是从Module::Build::Authoring文档中获得的).
然后,指定所需的库及其最低版本.如果您不在乎,零(0)是可接受的版本,但这意味着“任何事情”都是好的.我建议至少指定您正在测试的计算机上安装的库的版本.
(整洁的捷径:你可以找到任何具有$VERSION包变量的库的版本:
perl -MSome::lib -E "say Some::lib->VERSION()"
.)
要安装模块,步骤如下所示:
cd folder\where\my\lib\isperl Build.PLBuildBuild testBuild install
这将创建安装工具,准备用于测试的文件夹(通常只是将内容复制到构建库区域以获取简单模块),在t文件夹中运行所有.t脚本(“tests”,通常使用Test::More
进行单元测试安装之前的模块),然后最后,将您的模块安装到PC的Perl站点库中.
构建脚本作为“设置”阶段的一部分,将查看您的先决条件,并在您尚未拥有它们时发出警告.
然后,正如ikegami’s answer所指出的,如果您使用cpanm客户端安装库,cpan客户端将自动为您下载,下载,测试和安装您的依赖项!或者,基于Build.PL的安装程序也具有’installdeps’选项,它将执行相同的 *** 作.然后,即使它们将来发生变化,也会自动下载,测试和安装任何和所有依赖项(以及可能的递归依赖项).
总结以上是内存溢出为你收集整理的如何在Perl中重新分发非核心模块?全部内容,希望文章能够帮你解决如何在Perl中重新分发非核心模块?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)