使用Config文件打包Perl模块?

时间:2009-07-06 14:01:47

标签: perl config

我目前正在创建一个内部使用的Perl模块。我使用ExtUtils :: ModuleMaker为我的Perl模块生成构建脚本和框架。我想包含我的核心模块需要正常运行的.ini配置文件。我在哪里放置这些文件,以便它们与我的模块一起安装?在主模块和子模块中访问这些配置文件需要使用哪条路径?

P.S。这是目录框架:

   |-lib
   |---Main.pm
   |---Main
   |-----subModule1.pm
   |-----subModule2.pm
   |-----subModule3.pm
   |-scripts
   |-t

3 个答案:

答案 0 :(得分:4)

如果您使用的是Module :: Install,则可以使用Module::Install::ShareFile::ShareDir

如果您使用的是Module :: Build,则可能需要使用其config_data工具和*::ConfigData模块。

答案 1 :(得分:1)

看一下生成的Makefile,我敢打赌放在lib/Main下的更好的位置然后你可以指示你的模块首先看~/.modulerc,然后PERLLIB/Main/modulerc.ini或类似的东西。

您还可以在模块中嵌入默认值,在没有~/.modulerc的情况下,模块使用默认数据。

答案 2 :(得分:1)

要查找主目录,请参阅File::HomeDir。你不会想要使用〜(因为那是一个shell的东西)。

我建议你的模块尽可能不使用rc文件。如果它不存在,代码应该回退到默认值。这也应该是正确的,即使文件存在,但缺少特定的标志 - 它也应该回退到默认值。

您可能希望看到Config::Any。没有必要重新发明那个轮子。