我想做这样的事情:
die "Fatal error: application version $MY-APPLICATION-VERSION"
Run Code Online (Sandbox Code Playgroud)
由于Perl6模块无法假定打包文件的相对位置(例如,已安装的模块全部放入平面目录结构中),所以我不能这样做$?FILE.IO.add("../META6.json").slurp。有没有办法在可能安装或未安装的Perl6应用程序/模块中获取META6.json中声明的版本?
uge*_*exe 10
从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"
Run Code Online (Sandbox Code Playgroud)