I want to do something like this:
die "Fatal error: application version $MY-APPLICATION-VERSION"
Since a Perl6 module cannot assume the relative locations of files it was packaged with (for instance installed modules are all put into a flat directory structure) I can't just do $?FILE.IO.add("../META6.json").slurp
. Is there a way to get the version declared in META6.json in a Perl6 app/module that may or may not be installed?
As of rakudo v2019.03
modules may access the Distribution object used to load it via $?DISTRIBUTION. This allows the following:
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"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With