我目前正在创建一个内部使用的Perl模块。我使用ExtUtils :: ModuleMaker为我的Perl模块生成构建脚本和框架。我想包含我的核心模块需要正常运行的.ini配置文件。我在哪里放置这些文件,以便它们与我的模块一起安装?在主模块和子模块中访问这些配置文件需要使用哪条路径?
P.S。这是目录框架:
|-lib
|---Main.pm
|---Main
|-----subModule1.pm
|-----subModule2.pm
|-----subModule3.pm
|-scripts
|-t
答案 0 :(得分:4)
如果您使用的是Module :: Install,则可以使用Module::Install::Share和File::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。没有必要重新发明那个轮子。