2011/1/24 Ruslan Zakirov <r...@bestpractical.com>: > 2011/1/23 Ivan Petrov <i.petro.77...@gmail.com>: >> >>> Кстати, да. >>> Проверил на Ubuntu >>> >>> #!/usr/bin/perl >>> >>> use strict; >>> use warnings; >>> use encoding 'utf8'; >> >> хм. работает. >> >> надо будет серьезно потестить. баги utf8 то в общем-то все известны. а с >> encoding я пока ни разу не работал > > И не надо этой магии. Правильно как-то так: > > use utf8; > use open ':locale'; > > print "Бла-бла". Encode::decode( (split '.', $ENV{'LC_ALL'} || > $ENV{'LC_MESSAGES'} || $ENV{'LC_LANG'}, 2)[1], "$!" ); > > Правильно будет написать новую прагму или расширить utf8 или open, > которая ставит GET MAGIC на $! и делает это за вас. А вот это и не получается. Собственно возвращаясь к изначальной теме топика... В аттаче тест (нужен Variable::Magic)... насколько я себе сейчас это представляю навесить магию на $! не получится: 1. Магия навешивается 2. Юзерская магия срабатывает до системной 3. Системный "get" возвращает dualvar с errno и strerror(errno) (в районе mg.c:1037 для perl-5.12.2) Но может знатоки перла способны сделать невозможное? ;-)
> Что-то типа: > > use open OS_ERROR => ':locale'; > > Выбран open, потому что он уже поддерживает такой синтаксис для STD > потоков ввода/вывода. > > -- > Best regards, Ruslan. > -- > Moscow.pm mailing list > moscow-pm@pm.org | http://moscow.pm.org > -- Vladimir Timofeev <vovk...@gmail.com>
special_variable_with_magic.t
Description: Troff document
-- Moscow.pm mailing list moscow-pm@pm.org | http://moscow.pm.org