2011-01-25 94 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是一个词汇范围的全局变量的别名。