[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