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 mailing list
[email protected] | http://moscow.pm.org

Ответить