如何在没有自定义模块开销的情况下分发本机perl脚本

dla*_*tte 7 perl bundle distribution

有人如何分配本地(非"编译/ perl2exe/..."),Perl脚本,而不强迫用户了解自定义(非CPAN)模块的脚本才能运行需要的?

问题是用户将不可避免地将脚本复制到系统上的其他位置,并将脚本从其本机环境中取出,然后它就再也找不到运行所需的模块.

我有时会把模块复制到实际的脚本中,但我更喜欢更清洁的解决方案.

更新:我更好地澄清一下.我分发了一堆碰巧在后端使用类似模块的脚本.用户了解如何运行Perl脚本,而不是依赖告诉他们"不要移动脚本"我宁愿让他们移动文件.最不抵抗的道路.

Mic*_*man 6

正确的方法是告诉他们"不要那样做!" 我希望他们不会期望移动exe文件并让程序继续工作.这没什么不同.

也就是说,有几种选择.一个是用一个知道真实脚本完整路径的包装器(例如pl2bat)替换脚本.另一个是使用PAR,但这需要安装PAR和/或parl(来自PAR :: Packer).

  • 迈克尔是对的.你*可以*只使用PAR来生成一个可重定位的二进制文件.虽然OP要求提供不同的解决方案,但他没有提供理由. (2认同)

inn*_*naM 4

如果您为客户端准备的脚本需要“自定义”模块,只需打包您的模块,就像您尝试将它们上传到 cpan 一样。然后将包提供给客户端,他可以使用 cpan 实用程序来安装脚本和模块。

  • 我将其读为“如何安装与脚本一起使用的模块?”。恕我直言,软件包本身也可以安装脚本只是一个额外的好处。 (4认同)
  • 我怀疑原始的“安装”由“解压此文件”组成,而用户没有意识到文件之间的依赖关系。如果安装涉及更多 - 例如通过调用 cpan 或运行安装脚本 - 那么简单地移动 .pl 文件的诱惑就会消失。是否需要并不重要;仅仅是复杂安装的*幻觉*就足以将文件保留在原位。 (4认同)