[Moscow.pm] Созранить значение binmode
Oleg Alistratov
ali на ali.org.ua
Пт Май 24 16:13:28 PDT 2013
Действительно плохо, и не для того придумано.
Тут либо посмотреть, какие layers реально взводить на поток...
Ну, либо дупить STDOUT. Как-то так:
{
open LOCSTDOUT, '>&STDOUT';
binmode LOCSTDOUT, ':utf8';
select LOCSTDOUT;
...
}
21.05.2013, 23:38, "Maxim Vuets" <maxim.vuets на gmail.com>:
> 2013/5/21 Иван Бессарабов <ivan на bessarabov.ru>:
>
>> В коде пишу:
>>
>> binmode STDOUT, ":utf8";
>> print $some_text;
>>
>> А потом хочу вернуть binmode STDOUT в то значение, которое у него было до
>> установки :utf8. Как это можно сделать?
>
> http://perldoc.perl.org/PerlIO.html#Querying-the-layers-of-filehandles
>
> $ perl -le 'binmode STDOUT, ":utf8"; print for PerlIO::get_layers(\*STDOUT)'
> unix
> perlio
> utf8
>
> Ещё там же http://perldoc.perl.org/PerlIO.html#%3apop, но пишут, что с
> ":utf8" он не работает.
>
>> Цель — чтобы `binmode STDOUT, ":utf8";`, который используется в одном методе
>> никак не влиял на работу других методов.
>
> Это очень плохо пахнет. По-моему, проблему нужно решать другим путём.
>
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
--
Oleg Alistratov
Подробная информация о списке рассылки Moscow-pm