automake 错误:正则表达式中未转义的左括号已被弃用

automake 错误:正则表达式中未转义的左括号已被弃用

编译并安装 GNU automake 1.15 后,每次运行 automake 时都会出现此错误:

正则表达式中未转义的左括号已被弃用,在正则表达式中传递;

在 m/\${ <-- HERE ([^ \t=:+{}]+)}/ 中用 <-- HERE 标记

位于 /usr/local/bin/automake 第 3936 行

我有 perl v5.22.0

答案1

弃用警告本身并不是一个问题。

Perl 5.21.1 发行说明表明:

如果您想要在正则表达式模式中使用文字左花括号(也称为左括号),您现在应该通过在它前面加上反斜杠(“\{”)或将其括在方括号“[{]”中,或者使用 \Q 来对其进行转义;否则将引发弃用警告。此功能首次宣布将在 v5.16 版本中推出;它将允许将来对该语言进行扩展。

你可以报告此错误对于 Automake 的作者来说,尽管他们可能希望保留与旧版本 Perl 的兼容性。

答案2

我收到此错误只是因为我在 bash 中错误地使用了“print”而不是 echo:

print "abcd123" | perl -e 'myscript'  #causes error

解决方案是使用 echo,我只是通过混合语言混淆了 print/echo

echo "abcd123" | perl -e 'myscript'  #is fine
printf "abcd123" | perl -e 'myscript'  #is fine too, "printf" not print

相关内容