以下来自http://perldoc.perl.org/perlrequick.html#Search-and-replace的代码段给了我
Bareword发现运营商预计在blub.pl第2行附近 “S /狗/猫/ R”
这里有什么问题?我在Windows XP上使用Perl 5.12.4。
代码:
$x = "I like dogs.";
$y = $x =~ s/dogs/cats/r;
print "$x $y\n";
答案 0 :(得分:10)
您正在查看Perl 5.14的文档。该示例未显示在the documentation for Perl 5.12。
中您可以看到它已在perl 5.13.2 delta中标记为新功能。
您可以复制变量,然后修改它以在旧版本的Perl中实现相同的效果。
$x = "I like dogs.";
$y = $x;
$y =~ s/dogs/cats/;
print "$x $y\n";
或者您可以使用惯用语“one-liner”:
$x = "I like dogs.";
($y = $x) =~ s/dogs/cats/;
print "$x $y\n";
答案 1 :(得分:2)
我使用相同的版本(在Linux上)并获得相同的错误加
不带引号的字符串“r”可能与将来的保留字
冲突
当我删除r时它会起作用。该教程来自5.14,可能是5.12中尚未实现r
功能。