Можете ли вы написать Perl 6 скриптов, используя кодировку, которая не является utf8?

Perl 5 имеет прагму encoding или модуль Filter::Encoding, однако я не нашел ничего подобного в Perl 6. Думаю, в конечном итоге будут созданы исходные фильтры, но пока вы можете использовать другие кодировки в сценариях Perl 6?

Ответы

Ответ 1

Вы не можете написать свой скрипт Perl 6 во всем, кроме utf8. Я не думаю, что когда-либо будет какая-либо другая кодировка, вам будет разрешено писать ваш скрипт, поскольку utf8 - это в основном универсальный стандарт. Преимущества, такие как отсутствие endianess и совместимость с ASCII, являются некоторыми причинами, по которым он стал стандартом, а не такими, как utf16 или utf32.

Может быть, было время, когда такая вещь могла быть полезной, но сегодня я не вижу, что это так. Все текстовые редакторы общего пользования. Я знаю, что по умолчанию для utf8, и наличие файлов в нескольких форматах затрудняет обмен вашими программами Perl 6 с другими. Есть много причин, чтобы хотеть использовать другие кодировки, внешние по отношению к Perl 6 (запись в файлы, чтение файлов и т.д.), Но я не вижу добавления фильтров в качестве умного перемещения.

Ответ 2

В настоящее время Rakudo поддерживает параметр --encoding=, поэтому теоретически вы можете написать сценарий в кодировке другого символа и вызвать его с помощью perl6 --encoding=utf16 yourscript.p6. Но в моих экспериментах мне не удалось заставить его работать ни с чем, кроме utf8, и даже если бы это сработало, указание --encoding в командной строке было бы большим для меня.

Таким образом, оперативный ответ: в настоящее время нет.

(И я не думаю, что кто-то еще просил об этом еще...)