Могу ли я ограничить выполнение моей программы на 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';

должно быть достаточно.

Другие вопросы по тегам