[英]Use “perl -c” to verify syntax but ignore a particular error?
我目前正在运行perl -c filename
来确定perl -c filename
的语法是否正确。 如果是这样,我们可以将其提交给VCS。
现在,要检查的某些脚本已设置了setuid
位,这完全可以。 根据perldiag
这就是为什么我得到警告的原因:
Args must match #! line at /home/user/filename line 1.
如何抑制一次运行perl -c
的警告? 必须使用可变参数来调用脚本,因此我想进行语法检查以忽略此问题-在上下文中这不是真正的问题。
这就是我要删除过滤器脚本的原因:它需要从字面上计数输出行,然后根据相关行的计数来调整退出代码。 这是相当乏味的。
一些更多的细节。 原来,“警告”实际上是perl -c
的错误,如在perldoc perldiag
可以看到的:
(F) A fatal error (trappable).
[...]
Args must match #! line
(F) The setuid emulator requires that the arguments Perl was invoked with
match the arguments specified on the #! line. Since some systems impose a
one-argument limit on the #! line, try combining switches; for example,
turn -w -U into -wU.
请注意,这是一个相当老的系统( Red Hat Linux release 7.3 (Valhalla)
)和一个相当老的Perl( Summary of my perl5 (revision 5.0 version 6 subversion 1)
...)
似乎在较新的Perl版本中不赞成使用此错误。 我将尝试更新Perl版本,以查看这是否可行。
如何通过过滤器引导perl -c
的输出,该过滤器会丢弃您不感兴趣的警告(它通过正则表达式找到这些警告)。 然后,如果还有任何警告或错误输出,则无法提交到VCS。 如果没有这样的输出,请提交到VCS。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.