我正在尝试构建一个项目,但我一直得到这个例外。
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/\G{ <-- HERE / at .././tools/scpg
可能是因为perl版本(我使用的是5.22)。如何将perl版本降级到5.14?是否有任何cygwin命令?
答案 0 :(得分:4)
这不是一个例外,这是一个警告。见perldiag:
正则表达式中未转义的左括号被弃用,在正则表达式中传递;标记为&lt; - HERE,单位为m /%s /
(D已弃用,正则表达式)您在正则表达式模式中使用了文字
{
字符。您应该更改为使用\{
,因为未来版本的Perl(暂定为v5.26)会将此视为语法错误。如果模式分隔符也是大括号,则任何匹配的右大括号(}
)也应该被转义以避免混淆解析器,例如,qr{abc\{def\}ghi}
要修复警告,您应该更新代码,而不是降级perl!变化
m/\G{/
到
m/\G\{/
答案 1 :(得分:2)
有一天会来;不是现在,但很快;你的同事必须修改他们的代码
在所有这一切中涉及一个无辜的支撑{
永远是不对的,但她却被一个老而不友好的指示者所模仿而无法逃脱
她是可以拥有的东西的开始 - 应该是很多东西,但是在上下文中所有人都能看到的是曲线。她需要逃脱!
他们需要修复格式错误的正则表达式模式,或者在每个不合规程序的顶部添加no warnings 'deprecated'
。它必须迟早要完成,我建议人们修复代码是机会
要求你降级Perl的安装是可耻的