[Moscow.pm] use encoding и манипуляции со строками

Анатолий Гришаев 0body0 на rambler.ru
Пт Апр 24 11:09:44 PDT 2015


24.04.2015 21:00, Анатолий Гришаев пишет:
>
> 3) BEGIN{ $INC{"encoding.pm"} = "Janky go home" } перед загрузкой 
> твоего модуля.
>
>
Точнее так:

use strict;
use warnings;
use v5.12;
use utf8;
BEGIN{
     $INC{'encoding.pm'} = 1;
     *encoding::import = \&utf8::import;
}
тогда use encoding 'utf8';
будет работать как нужно.

v1 is utf-8 = 0
v2 is utf-8 = 0
v1 is utf-8 = 0
v2 is utf-8 = 0

Только надо проверить, что стороннему модулю плохо не стало.


>
>
>>
>> Сам скрипт:
>>
>> use strict;
>> use warnings;
>> use v5.12;
>> use utf8;
>>
>> use encoding 'utf-8';
>>
>> my $v1 = '';
>> my $v2 = '';
>>
>> utf8::downgrade($v1);
>> utf8::downgrade($v2);
>>
>> say 'v1 is utf-8 = ', utf8::is_utf8($v1) || 0;
>> say 'v2 is utf-8 = ', utf8::is_utf8($v2) || 0;
>>
>> $v1 .= chr(hex($_)) for qw(22 D0);
>> $v2 .= chr(hex($_)) for qw(D0);
>>
>> say 'v1 is utf-8 = ', utf8::is_utf8($v1) || 0;
>> say 'v2 is utf-8 = ', utf8::is_utf8($v2) || 0;
>>
>> Окружение:
>>
>> $ perl -v
>> This is perl 5, version 14, subversion 2 (v5.14.2) built for 
>> x86_64-linux-gnu-thread-multi
>> (with 57 registered patches, see perl -V for more detail)
>>
>> $ perl -MEncode -E 'say Encode->VERSION'
>> 2.73
>>
>> -- 
>> Денис Ибаев
>>
>>
>>
>
>
>

----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20150424/6a287599/attachment.html>


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