Perl编程和分发

for*_*are 5 perl perl-module

我是Perl编程的新手.我刚刚读完了Llama的书.到目前为止,我已经用Bash编写了脚本,但我想尝试使用Perl,它比Bash脚本更有优势.

我正在创建一个使用许多标准模块(例如Getopt)的脚本和一些不那么标准的模块(例如PerlMagick)

在某些时候,我想分发我的Perl代码,我希望它可以被那些不了解Perl或编程的人使用.显然标准模块应该始终存在(我使用"使用5.010"在一定程度上保证这一点),但是哪些非标准模块?

我想有两种可能性:1)我应该告诉最终用户安装缺少的模块吗?2)我应该创建一个测试模块的安装脚本,如果它们不存在,那么安装它们吗?如果选择了选项2,我应该下载模块并安装它们吗?或者用我的主要代码分发它们?我只是不确定这些事情的礼节是什么......

非常感谢你的所有建议,本

hob*_*bbs 5

如果您将应用程序设计为Perl发行版(在CPAN上使用),那么您将获得Perl工具链的强大功能来为您处理此类事情.您只需确保您所依赖的模块正确列在您的模块中Makefile.PL,然后有人只需编写cpan YourApp::Name即可获取您的应用程序及其所需的一切.或者,如果他们从CPAN以外的其他地方下载了您的应用程序并且他们正在手动构建它,那么该make进程可以找到它们的依赖关系(这就是为什么Module::AutoInstall并不完全死亡并且不值得成为IMO).

对于Windows用户,在cpan YourApp::Name步骤之前必须添加的唯一内容是"安装Strawberry Perl".

您还可以选择捆绑(无论是PAR还是仅包含您的应用程序和所有必要模块的安装程序或存档,可能perl还有其自身),但这种技术有一个主要缺点:它意味着您要么不能使用任何 XS代码,否则您必须为您希望应用支持的每个不同平台提供单独的包.CPAN路由不会遇到该问题.