我已经开始module-starter
(--builder=Module::Build
)。我想使用SQL::Library
将我的SQL收集到.ini文件中...但是为了在运行时找到该文件,我需要知道它的确切路径。如何在运行时获取模块“数据目录”的路径?
到目前为止,我一直在使用FindBin(如"$FindBin::Bin/../../path/to/module/datafiles/foo.ini"
,但我发现这不是很强大(例如,当两个不同的目录中有两个同名的程序时,它似乎会中断) PATH)。
答案 0 :(得分:16)
这是File::ShareDir的用途。由于您正在使用Module :: Build,因此您需要设置share_dir参数(并且需要Module :: Build 0.36)才能将您的数据文件与模块一起安装。然后,在您的代码中,您将使用File :: ShareDir来计算foo.ini
的路径(例如dist_file('My-Dist', 'foo.ini')
)