Могу ли я ограничить выполнение моей программы на Perl 6 в определенной реализации?
Подпрограмма dd - это особенность Rakudo, но это случайно для моего вопроса. Есть ли способ внутри программы проверить реализацию и выручить, если она не правильная? Должен ли я сделать это самостоятельно?
die "Unsupported VM" unless $*VM ~~ m/^ 'moar' /;
Может быть, нам нужно что-то вроде Perl 5 Devel:: AssertOS.
Меня нисколько не интересует создание программ, специфичных для реализации, но я могу представить себе случаи, когда в одной реализации есть определенные особенности и ошибки, несовместимые с программой. Потому что, вы знаете, это была Java в течение нескольких лет (помните MRJ?).
1 ответ
Решение
Если вы хотите запустить вашу программу только на MoarVM, то:
die "Must run on MoarVM, not $*VM.name()" unless $*VM.name eq 'moar';
должно быть достаточно.