3

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

PS这是目录框架:

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

3 回答 3

4

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

如果您正在使用 Module::Build,您可能需要使用它的config_data工具和*::ConfigData模块。

于 2009-07-07T04:42:18.307 回答
1

看一下生成的 Makefile,我敢打赌最好把它放在下面lib/Main,然后你可以让你的模块先看~/.modulerc,然后再看PERLLIB/Main/modulerc.ini类似的东西。

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

于 2009-07-06T14:47:46.397 回答
1

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

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

您可能想在使用时查看Config::Any。没有必要重新发明那个轮子。

于 2009-07-06T19:08:08.830 回答