我可以将Perl 6程序限制为在特定实现下运行吗?

bri*_*foy 5 rakudo perl6

DD例程是一个特定Rakudo特征,但这是偶然的我的问题.在程序中是否有办法检查实现并挽救它是否是正确的?我必须自己做吗?

 die "Unsupported VM" unless $*VM ~~ m/^ 'moar' /;
Run Code Online (Sandbox Code Playgroud)

也许我们需要像Perl 5的Devel :: AssertOS这样的东西.

我根本不想创建特定于实现的程序,但我可以想象一个实现具有特定怪癖和与程序不兼容的错误的情况.因为,你知道,这是几年的Java(还记得MRJ吗?).

Eli*_*sen 6

如果只想在MoarVM上运行程序,那么:

BEGIN die "Must run on MoarVM, not $*VM.name()" unless $*VM.name eq 'moar';
Run Code Online (Sandbox Code Playgroud)

应该够了.