gpt4 book ai didi

perl - 使用 “perl -c”验证语法,但忽略特定错误?

转载 作者:行者123 更新时间:2023-12-03 08:00:30 25 4
gpt4 key购买 nike

我目前正在运行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。

关于perl - 使用 “perl -c”验证语法,但忽略特定错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14444978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com