28 января 2011 г. 9:55 пользователь Ivan Petrov <[email protected]> написал: > толи лыжи не едут толи не пойму: > > $ 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 > [email protected] | http://moscow.pm.org > > -- Ilya Chesnokov -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
