[Moscow.pm] tie на стандартные переменные

Vladimir Timofeev vovkasm на gmail.com
Вт Янв 25 01:11:47 PST 2011


2011/1/24 Ruslan Zakirov <ruz на bestpractical.com>:
> 2011/1/23 Ivan Petrov <i.petro.77.00 на 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 <vovkasm на gmail.com>
----------- следущая часть -----------
A non-text attachment was scrubbed...
Name: special_variable_with_magic.t
Type: application/x-troff
Size: 449 bytes
Desc: отсутствует
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20110125/85f684d2/attachment.t>


Подробная информация о списке рассылки Moscow-pm