#raku
#raku
Вопрос:
Я хочу сделать что-то вроде этого:
die "Fatal error: application version $MY-APPLICATION-VERSION"
Поскольку модуль Raku не может предположить относительное расположение файлов, с которыми он был упакован (например, все установленные модули помещены в плоскую структуру каталогов) Я не могу просто сделать $?FILE.IO.add("../META6.json").slurp
. Есть ли способ получить версию, объявленную в META6.json, в приложении / модуле Raku, которое может быть установлено, а может и не быть?
Ответ №1:
Начиная с rakudo v2019.03
, модули могут обращаться к объекту Distribution, используемому для его загрузки через $?DISTRIBUTION. Это позволяет следующее:
unit module My::Module;
BEGIN my $VERSION = $?DISTRIBUTION.meta<version>;
use My::SubModule:ver($VERSION); # ensure we only ever use the version included in this distribution
die "Fatal error: application version $VERSION"