On Sat, 11 Jun 2011 13:23:56 +0300, Ivan Petrov wrote:


<кусь>

Sequence (?1...) not recognized in regex; marked by <-- HERE in m/(
\{ (?>[^{}]*) (?:\}\d*|(?1 <-- HERE ) \} \d*) )/

это Вы что-то не так скопипастили:

Спасибо.
Перепроверил по вашему образцу.

$ perl test.pl
$VAR1 = [
          '{any symbol}',
          '{any symbol}1',
          '{sym{bol{}}}4'
        ];


$ cat test.pl
#!/usr/bin/perl

use warnings;
use strict;

use Data::Dumper;

my $str = '{any symbol}{any symbol}1{any {sym{bol{}}}4';
my @items = $str =~ /( \{ (?>[^{}]*) (?:\}\d*|(?1) \} \d*) )/gx;

print Dumper \@items;

Всё равно та же ошибка.
По всей видимости у Вас версия Perl поновее будет.

Я сам в раздумьях подобрать эквивалент (?1),
пока не соображу...
(?\1) --- не подходит
(?$1) --- результат не тот

$VAR1 = [
          '{any symbol}',
          '{any symbol}1',
          '{}'
        ];

У меня:

$ perl -v

This is perl, v5.8.8 built for i386-linux-thread-multi
(with 2 registered patches, see perl -V for more detail)
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить