К своему удивлению, обнаружил возможность
использования non-ASCII символов при определении
имен переменных, функций и т.д.
Ранее некогда, пытался сделать аналогичное, но
в однобайтной кодировке, не получилось. Не помог
даже use encoding «cp1251»; (
Оказалось -
Нужно было работать в кодировке utf8 в исходнике!
use utf8; use encoding «utf8»; sub Привет { print «Привет Мир!»; } Привет; $йцукенгшщзхъфывапролджэячсмитьбюё = «1»; $ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЁ = «2»; print $йцукенгшщзхъфывапролджэячсмитьбюё + $ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЁ;
Кстати, ещё по поводу use encoding «cpXXX»;
это стандартный способ указания текущей кодировки
(определение текущей локали, и не надо никаких posix)
use open «:utf8»; # прагма для открытия файлов на работу с utf8 use encoding «cp1251»; # сообщаем, что последующие строки в исходнике # представлены в кодировке cp1251 (Win) open (LOG, «>log»); # открываем новый файл print LOG «Привет из Виндовс!»; close(LOG); use encoding «cp866»; # меняем кодировку в исходнике на cp866 (DOS) open (LOG, «>>log»); # добавляем в файл новые строки print LOG «?аЁў?в Ё "?' !"; close(LOG); use encoding «koi8-r»; # меняем кодировку в исходнике на koi8-r (Unix) open (LOG, «>>log»); # добавляем в файл новые строки print LOG «рТЙЧЕФ ЙЪ аОЙЛУБ!»; close(LOG);
На выходе файл в UTF8 с корректно распознанными национальными строками.
Кроме того, таким аналогичным образом работаем с tk и wxWidgets.
Так в tk если наш исходник в cp1251 ставим use encoding «cp1251»;
Все очень здорово и замечательно! Не открываю Америку, но может кому нужно.
— Perl не определяет стандартного способа сделать что либо!

Представил что
Представил что надо разобраться в исходнике, который писал к примеру китаец (и использовал свои - родные имена переменных) =)
------------------
Так сделаем-же
Так сделаем-же имена страшней китайских! ;)
Смайлик
В свое время, когда в perl появился нормальная поддержка utf8, появилась мысль придать коду эмоциональную окраску! :-) Но символ смайлик, это не буква, поэтому его нельзя использовать в названиях переменных и подпрограмм. :-(
"все давно придумано до нас"
насчет энкодинга текста
А насчет энкодинга текста, сейчас уже в большинстве случаев удобно все внутри программы делать в utf-8, а только на входе и выходе с миром переводить в соответствующую кодировку.
- удобство в том что utf-8 знают все приличные редакторы и СУБД, и не возникает вопросов ни с европейскими буквами ни с всякими значками вроде евро.
too_☺
Нет, интересней было бы так:
sub too_☺ {}...
# так правильнее! &Привет;