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

Ruslan Zakirov ruz на bestpractical.com
Пн Янв 24 03:29:14 PST 2011


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 на $! и делает это за вас. Что-то типа:

use open OS_ERROR => ':locale';

Выбран open, потому что он уже поддерживает такой синтаксис для STD
потоков ввода/вывода.

-- 
Best regards, Ruslan.


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