Автоматичне визначення кодування терміналу в perl-скрипті
Набридло руками змінювати кодування для нормального виведення російського тексту в своїх perl-скриптах залежно від кодування терміналу (запускаю скрипти під Linux (utf8), Windows (ActivePerl, cp866) і Windows (Cygwin, cp1251)). Трохи погуглити, але ніяких готових рецептів не зустрів, хороший запит для пошуку що-то в голову не прийшов.
Вирішив поступити наступним чином - визначати операційну систему, в якій запущений скрипт, і залежно від цього виставляти кодування вихідного потоку (STDOUT):
#! / Usr / bin / perl; use utf8; require encoding; import encoding ('utf8', 'STDOUT' => & SetEncoding); sub SetEncoding ( if ($ ^ O = ~ / ^ MSWin \ d (2) $ / i) ( return 'cp866'; ) elsif ($ ^ O = ~ / ^ cygwin $ / i) ( return 'cp1251'; ) elsif (умова для наступної ОС (наприклад - linux)) ( return 'utf8'; ) ... і так далі, виходячи з особистих потреб .... )
Зауваження, виправлення, доповнення та / або інші способи вирішення завдання з автоматичної установки кодування для perl-скрипта завжди вітаються!
І про всяк випадок, якщо раптом мені не вдасться знайти час написати ще щось у блог до нового року - вітаю всіх своїх читачів з наступаючим новим роком, успіхів вам і побільше приємних відкриттів! ![]()
PS: А для цікавляться фрілансом - новий, але досить цікавий ресурс ФрілансFM - портал про фрілансе

Останні коментарі