Как я могу распространять файлы данных с помощью модулей Perl?
Я запустил module-starter
(с --builder=Module::Build
). Я хочу использовать SQL::Library
для сбора моего SQL в файл .ini... но для того, чтобы найти файл во время выполнения, мне нужно знать его точный путь. Как мне получить путь к "каталогу данных" модуля во время выполнения?
До сих пор я использовал FindBin (например, "$FindBin::Bin/../../path/to/module/datafiles/foo.ini"
, но я обнаружил, что это не очень надежный (например, он, кажется, прерывается, когда в двух разных версиях PATH есть две программы с одинаковым именем).
Ответы
Ответ 1
Это то, что для File::ShareDir. Поскольку вы используете Module:: Build, вам нужно установить параметр share_dir (и потребовать Module:: Build 0.36) в чтобы ваши файлы данных были установлены вместе с вашим модулем. Затем в вашем коде вы будете использовать File:: ShareDir для вычисления пути foo.ini
(например, dist_file('My-Dist', 'foo.ini')
)