我可以在特定实现下将我的 Perl 6 程序限制为 运行 吗?
Can I limit my Perl 6 program to running under a particular implementation?
dd 例程是 Rakudo 特有的功能,但这对我的问题来说是偶然的。程序内部是否有一种方法可以检查实现并在不正确时退出?我必须自己做吗?
die "Unsupported VM" unless $*VM ~~ m/^ 'moar' /;
也许我们需要类似 Perl 5 的东西 Devel::AssertOS。
我对创建特定于实现的程序完全不感兴趣,但我可以想象这样的情况,即某个实现具有与程序不兼容的特定怪癖和错误。因为,你知道,那是 Java 好几年了(还记得 MRJ 吗?)。
如果你想 运行 你的程序只在 MoarVM 上运行,那么:
BEGIN die "Must run on MoarVM, not $*VM.name()" unless $*VM.name eq 'moar';
应该够了。
更新:根据 Jonathan Worthington
的建议添加了 BEGIN
dd 例程是 Rakudo 特有的功能,但这对我的问题来说是偶然的。程序内部是否有一种方法可以检查实现并在不正确时退出?我必须自己做吗?
die "Unsupported VM" unless $*VM ~~ m/^ 'moar' /;
也许我们需要类似 Perl 5 的东西 Devel::AssertOS。
我对创建特定于实现的程序完全不感兴趣,但我可以想象这样的情况,即某个实现具有与程序不兼容的特定怪癖和错误。因为,你知道,那是 Java 好几年了(还记得 MRJ 吗?)。
如果你想 运行 你的程序只在 MoarVM 上运行,那么:
BEGIN die "Must run on MoarVM, not $*VM.name()" unless $*VM.name eq 'moar';
应该够了。
更新:根据 Jonathan Worthington
的建议添加了BEGIN