如何将Cygwin的perl版本从5.22降级到5.14?

时间:2016-05-04 23:01:43

标签: perl compiler-errors cygwin

我正在尝试构建一个项目,但我一直得到这个例外。

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命令?

2 个答案:

答案 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的安装是可耻的