[Moscow.pm] сериализация регулярных выражений

Ilya Chesnokov chesnokov.ilya на gmail.com
Пт Янв 28 04:08:54 PST 2011


28 января 2011 г. 9:55 пользователь Ivan Petrov
<i.petro.77.00 на gmail.com> написал:
> толи лыжи не едут толи не пойму:
>
> $ perl -MData::Dumper -e 'print Dumper(qr/^(abc|def)$/)'
> $VAR1 = qr/(?-xism:^(abc|def)$)/;
>
> $ perl -MData::Dumper -e 'print Dumper(eval q{qr/(?-xism:^(abc|def)$)/})'
> $VAR1 = qr/(?-xism:(?-xism:^(abc|def)$))/;
>
> причем это по ходу дела не Data::Dumper виноват, а перловый eval так делает:
>
> $ perl  -e 'print eval q{qr/(?-xism:^(abc|def)$)/}'
> (?-xism:(?-xism:^(abc|def)$))
>
> и соответственно если взять некий объект, который содержит регулярное
> выражение, сериализовать его, затем десериализовать и потом опять
> сериализовать, то соответствия двух сериализованных значений мы не получим.

Да, в результате преобразования регулярного выражения в строку и
обратно не всегда получается исходная регулярка.
Об этом в Perl Best Practices вроде бы упоминалось, наверняка и в
документации где-то есть.


> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
>



-- 
Ilya Chesnokov


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