perl – 可以’使用严格’警告而不是错误
当使用use strict perl时,会在不安全的构造上生成运行时错误.现在我想知道是否可以让它只打印警告而不是导致运行时错误?或者是否使用警告(或-w)警告相同的问题?
解决方法
我要在这里猜测真正的动机.如果我猜错了,请随时告诉我.
我怀疑你试图解决一个庞大的,较旧的代码库,并希望启用限制,但你希望首先了解错误的位置(以及有多少)而不破坏功能.不幸的是,由于通过修改perl解析器和解释器的内部行为来使用严格的函数,因此没有“松散严格”或类似于html的任何类型的“过渡”模式. 但是,您可以将use strict的功能分开,以便开始向正确的方向移动.首先,请注意实际上有三个独立的部分: use strict 'refs'; # no symbolic references use strict 'vars'; # must declare variables use strict 'subs'; # no barewords 而那些只有’refs’会产生运行时错误.因此,您可以轻松地将use strict qw(vars subs)添加到每个文件(脚本和模块)中,并使用perl -c进行测试.如果您遇到任何错误消息,请注释use strict,或至少两个检查失败中的任何一个,并添加关于失败性质的注释并继续.这样,您可以快速(取决于文件的数量)确定哪些文件具有编译时错误,然后返回以解决它们. (如果你现在比我更有动力,你甚至可以自动化这个过程).除非你的代码在BEGIN块中有可怕的东西,否则这应该是非常安全的. 更棘手的部分是检查使用严格’refs’生成的运行时错误,遗憾的是,确实没有一种简单的方法可以做到这一点,因为错误是由符号引用触发的,这些错误无法通过任何类型的静态分析来确定所以-c和/或Perl::Critic都没用. 希望这更接近于解决您的真实问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |