Сразу хочу оговориться: это не только не web, но и к пользовательским приложениям отнесено может быть с большой натяжкой.
Изрядная часть комплекса АСУТП написана на perl (скрипты поддержки целостности системы, обработки данных, web-интерфейс администрирования, пользовательский интерфейс к некоторым задачам). Писалось 5..7 лет назад, кодировка - koi8. В ней же - десятки мегабайт данных (БД), мегабайты документации и т.д. и т.п.
С течением времени (и upgrade-ом оборудования) менялось ядро и система (насколько это требовалось новому ядру или в интересах комплекса), но всё это оставалось в рамках старого дистрибутива и, соответственно, perl 5.6.1
В какой-то момент времени было принято решение о переходе на новый дистрибутив. Который, разумеется, в качестве локали настойчиво предлагает UTF. Ни малейшей потребности в UTF у комплекса нет, поэтому локаль оставлена прежней. Разумеется, нашлись программы (что в консоли, что в gui), которые с кириллицей работают только в UTF. Это, однако, пустяки: пользователи комплекса ни с чем, кроме него самого, дела не имеют, а админам, при необходимости, можно и к UTF вернуться.
Но вот perl, который нынче 5.8.8... Побитные операции, pack/unpack/vec, формирование и парсинг сетевых пакетов - и везде отследить, что бы perl не интерпретировал массивы байт как utf-последовательности? Б-рр...
Пока принято решение все скрипты выполнять под
use bytes
А для ввода-вывода, когда требуется, использовать encode/decode, предоставляемые Encode.pm
Тоже "кусок работы", но - поменьше, и, главное, переделки достаточно очевидны.
Any suggestions?
