2011-01-25 91 views
6

我正在教我自己的Perl過程。我在Eclipse中使用EPIC調試器。每當我有一個var只使用一次在一個子我得到這個警告:
印刷錯誤通常顯示爲唯一的變量名稱。 如果你有一個很好的理由擁有一個獨特的名字,那麼只需再次提及它 以抑制消息。爲此提供的C<our>聲明爲 。
什麼是C<our>?標準搜索沒有結果。Perl:究竟是什麼C <our>?

+1

當您說「標準搜索沒有結果」時,您是否嘗試輸入[perldoc -f我們](http://perldoc.perl.org/functions/our.html)? – Ether 2011-01-25 19:42:42

+2

@其他 - 不是每個人都知道(甚至有權訪問)perldoc命令行。大多數人只是谷歌。 – DVK 2011-01-25 19:57:55

+2

@Cooter =>在向變量聲明中添加`our`可能會抑制警告,您得到它的原因是因爲該變量在您的程序中只曾使用過一次。除非您使用符號引用或直接符號表訪問來玩遊戲,否則這可能是一個錯誤(您在學習該語言的基礎知識時不應該這麼做)。你能發佈生成警告的代碼塊嗎? – 2011-01-25 21:53:15

回答

11
  • 至於可能已經讓你感到困惑C<>部分,它看起來像EPIC了一個文本in POD format和印刷生的,而不是從POD渲染成一個格式化的文本。

    C<our> POD語法的意思是「打印文本」我們的'格式化爲代碼',通常意味着單間隔字體。這與您使用自己的問題的StackOverflow's `our` backtick-surrounded format command類似。

  • 本身來自Perl的diagnostics模塊,提供否則略帶神祕的Perl警告擴展的解釋(在這種情況下,「名稱‘%S ::%s’時只能使用一次:可能錯字」)的錯誤。事實上,從使您感到困惑的POD格式來看,EPIC可能使用了source POD from which the above-linked "perldiag" document was generated

  • 如果你問our呢,你應該閱讀perldoc -f our - 這是創建一個別名爲有效在給定範圍內的全局變量(見tchrist對細節asnwer)的方式。

  • 就本例中的Google搜索技術而言,當您專門搜索您期望成爲Perl關鍵字的東西時,它總是向Google支付「perldoc someKeyword」的費用。

2

這是一個Perl::Critic消息,提示您可以使用our $var;作爲變量定義:-),以便描述原因。

5

our是一個詞彙範圍的全局變量的別名。