Есть ли в Perl 6 режим испорченности?
Perl 5 поддерживает режим "портить" с помощью ключа -T. Сценарий внутренне пометит любое значение, полученное из внешнего источника по отношению к сценарию, как испорченное, которое должно быть незапятнанным. Поддерживает ли Perl 6 такую опцию?
2 ответа
Нет.
Такая функция кратко упоминается в документах по дизайну. Предложение является введение taint
черта.
Вы можете увидеть последние комментарии Ларри Уолла об этом (и любой другой теме), выполнив поиск в журналах #perl6. Упоминания TimToady о " порче" показывают, что "у нас еще нет механизма разрушения, чтобы предотвратить злоупотребления" в декабре.
Perl 5 помечает скалярный контейнер как испорченный, и этот порок может или не может пролиться в другие контейнеры. Причина, по которой он не придерживается значений, заложенных в массивы, заключается в том, что Perl 5 использует те же массивы, чтобы хранить свои собственные данные. Падение производительности было бы слишком большим, чтобы заставить испорченный режим работать должным образом.
Как вы уже, наверное, догадались, испорченный режим присоединился к Dodo. Вместо этого вы можете использовать ограниченную настройку. Посмотрите код для Camelia, как это делается.