我目前正在運行perl -c filename
來確定文件的語法是否正常。如果是這樣,我們可以將其提交給VCS。使用「perl -c」來驗證語法,但忽略特定的錯誤?
現在,一些要檢查的腳本有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版本以查看這是否是一種可行的解決方法。
顯然,這是當前的解決方法。但不是我想要的。不過謝謝你的回答。 – 0xC0000022L
哎呀。是否有任何討論[這裏](http://perldoc.perl.org/perllexwarn.html)有幫助? – DWright
閱讀。謝謝。它可能。我不確定'perl -c'是否會授予這些權限。但由於它們是雜注,它可能應該。 – 0xC0000022L