在分发中放置非必要的.pl文件的位置?

时间:2014-04-03 19:28:46

标签: perl

我想在我的CPAN模块中包含一些额外的.pl文件。这些文件对于使用模块不是必不可少的,但是当模块用于某些通用框架和应用程序时,它们提供了有用的功能/粘合剂。

目前,我只是将.pl文件包含在发行版的“extras”目录中。这样做的缺点是make install上没有安装文件。有没有办法将它们包含在安装中,它们应该放在哪里? (它们不是可执行文件,不属于“bin”。)“共享”是否有意义?或者这些类型的文件通常只是没有安装,是由用户从.tgz存档中取出并根据需要使用?

我使用Dist :: Zilla来管理我的发行版。

3 个答案:

答案 0 :(得分:1)

我建议如下:

  • 如果他们是实际的完整程序或几乎完成,那么请将其打磨并制作独立的项目,这些项目可以通过他们自己的POD进入/bin
  • 如果他们是实用工具胶水,请制作一个::Utils模块供他们居住并记录他们的使用情况。
  • 如果这些是有用的代码段,但不是您可以安装在某处或者是样本用法或方便的习惯用法,请创建一个::Cookbook all-POD模块并将其包含在那里,并为每个模块提供适当的说明性解释。

答案 1 :(得分:0)

我不确切知道Dist :: Zilla的工作原理,但最终的存档必须与ExtUtils :: MakeMaker创建的内容兼容。

使用module-starter创建模块时,会使用ExtUtils::MakeMaker创建模块模板。它会创建几个文件和目录,例如模块所在的lib目录以及测试所在的t目录。

它没有创建的一件事是bin目录。但是,如果您创建一个bin目录,并将文件放在此目录下(例如Perl脚本),则这些文件将安装在Perl分发中的bin目录下并链接到/usr/local/bin/usr/bin。这会是你脚本的好地方吗?

答案 2 :(得分:0)

我喜欢@ Joe的回答,除了在我的情况下文件是WebWork macros - 个人.pl文件,使我的模块可以从WebWork最终用户的代码调用。所以它们不适合这里讨论的任何类别,因为.pl文件不能成为模块。

这就是我最终做的事情:

  1. 将所有.pl宏文件放入发行版中的'extras / WebWork'。
  2. 向“dist.ini”文件添加[ShareDir]dir = extras属性文件。
  3. 现在,WebWork管理员可以从CPAN安装我的发行版,然后使用perl -MFile::ShareDir -e 'print File::ShareDir::dist_dir("Statistics-R-IO")'查找宏并使其在WebWork中可用。