Ошибка синтаксиса Perl RegEx - PullRequest
7 голосов
/ 16 ноября 2011

следующий фрагмент кода взят из http://perldoc.perl.org/perlrequick.html#Search-and-replace дает мне

Найденное слово, где ожидается оператор на blub.pl, строка 2, рядом "S / собаки / кошки / г"

В чем здесь проблема? Я использую Perl 5.12.4 на Windows XP.

Код:

$x = "I like dogs.";
$y = $x =~ s/dogs/cats/r;
print "$x $y\n";

Ответы [ 2 ]

10 голосов
/ 16 ноября 2011

Вы смотрите документацию по Perl 5.14.Этот пример не появляется в документации по Perl 5.12 .

Вы можете видеть, что он помечен как новая функция в perl 5.13.2 delta .

Вы можете скопировать переменную и , затем изменить ее для достижения того же эффекта в более старых версиях Perl.

$x = "I like dogs.";
$y = $x;
$y =~ s/dogs/cats/;
print "$x $y\n";

Или вы можете использовать идиоматическую однострочную строку":

$x = "I like dogs.";
($y = $x) =~ s/dogs/cats/;
print "$x $y\n";
2 голосов
/ 16 ноября 2011

Я использую ту же версию (для Linux) и получаю ту же ошибку плюс

Строка без кавычек "r" может конфликтовать с будущим зарезервированным словом

это работает, когда я удаляю r.Это руководство по 5.14, возможно, функция r еще не была реализована в 5.12.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...