[Moscow.pm] unexpected bit width

Anton Yuzhaninov citrin на citrin.ru
Вт Мар 17 04:39:40 PDT 2015


On 04/22/14 23:16, Alan Rafagudinov wrote:
> Мозг себе сломал, не могу понять природу ошибки:
>
>
> #!/usr/bin/env perl
>
> use strict;
> use utf8;
>
> my $str = " № 00";
>
> $str =~ /\bXXX\s?0/i;
>
>
> При запуске этого кода получаю:
>
> "panic: swash_fetch got swatch of unexpected bit width, slen=32,
> needents=64 at ./1.pl line 8."

Столкнулся с очень похоже проблемой.

use utf8;
use open qw/:std :encoding(utf8)/;
use Devel::Peek;

my $x = "0005 RU Москва";
$x =~ /^(.*?)\s(.*)$/;

warn $2;
Dump($2);
warn lc($2);

При запуске на 5.20.2

RU Москва at ./ttt2.pl line 10.
SV = PVMG(0x801dd8c60) at 0x801ce2f78
   REFCNT = 1
   FLAGS = (GMG,SMG,POK,IsCOW,pPOK,UTF8)
   IV = 0
   NV = 0
   PV = 0x801c8b340 "RU \320\234\320\276\321\201\320\272\320\262\320\260"\0 
[UTF8 "RU \x{41c}\x{43e}\x{441}\x{43a}\x{432}\x{430}"]
   CUR = 15
   LEN = 17
   COW_REFCNT = 0
   MAGIC = 0x801d257c0
     MG_VIRTUAL = &PL_vtbl_sv
     MG_TYPE = PERL_MAGIC_sv(\0)
     MG_OBJ = 0x801ce2fc0
     MG_LEN = 2
panic: swash_fetch got swatch of unexpected bit width, slen=1024, needents=64 at 
./ttt2.pl line 12.

UTF насколько могу видеть впролне валидный.

В 12-й строке - lc

На 5.20.1 скрипт работает без ошибок.


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