[英]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.