簡體   English   中英

使用“ perl -c”驗證語法,但忽略特定錯誤?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM