Perl:C<;到底是什么;我们的>;?

Perl:C<;到底是什么;我们的>;?,perl,Perl,我正在自学Perl。我正在Eclipse中使用EPIC调试器。每当我在sub中只使用了一次var时,就会收到以下警告: 排版错误通常显示为唯一的变量名。 如果你有一个很好的理由拥有一个独特的名字,那就提出来吧 再次以某种方式抑制信息。C声明是 为此目的而提供。 什么是C?标准搜索没有结果。这是一条Perl::Critic消息,建议您可以使用我们的$var用于变量定义:-)用于所述原因。 至于可能让您感到困惑的C部分,它看起来像是EPIC将文本原始打印出来,而不是将其从POD渲染为格式化文本 C在

我正在自学Perl。我正在Eclipse中使用EPIC调试器。每当我在sub中只使用了一次var时,就会收到以下警告:
排版错误通常显示为唯一的变量名。 如果你有一个很好的理由拥有一个独特的名字,那就提出来吧 再次以某种方式抑制信息。
C
声明是 为此目的而提供。

什么是
C
?标准搜索没有结果。

这是一条
Perl::Critic
消息,建议您可以使用
我们的$var用于变量定义:-)用于所述原因。

  • 至于可能让您感到困惑的
    C
    部分,它看起来像是EPIC将文本原始打印出来,而不是将其从POD渲染为格式化文本

    C
    在POD语法中的意思是“打印文本‘我们的’格式化为代码”,通常指单间距字体。这与您自己使用的问题类似

  • 错误本身来自Perl的模块,该模块提供了对Perl警告的扩展解释(在本例中,“Name”%s::%s“只使用了一次:可能的拼写错误)。事实上,从令你困惑的POD格式判断,EPIC可能使用了

  • 如果您要问我们的
做了什么,您应该阅读-这是一种在给定范围内有效的全局变量中创建别名的方法(有关详细信息,请参阅tchrist的asnwer)

  • 就本例中的谷歌搜索技术而言,当您专门搜索预期的Perl关键字时,它总是向谷歌支付“perldocsomekeyword”的费用


  • 我们的
    是一个全局变量的词典范围别名。

    当您说“标准搜索是不确定的”时,您是否尝试键入?@Ether-并非每个人都知道(甚至可以访问)perldoc命令行。大多数人只是用谷歌搜索。@Cooter=>在变量声明中添加一个
    our
    可能会抑制该警告,您得到该警告的原因是该变量在您的程序中只使用过一次。这可能是一个错误,除非您正在玩带有符号引用或直接符号表访问的游戏(学习该语言的基础知识时不应该这样做)。你能发布生成警告的代码块吗?@DVK:我也链接到了在线文档。。。但是什么时候不在本地安装文档呢?ActivePerl在内部具有perldocs,任何unix安装都应该具有perldoc命令。(我在面试潜在员工时问了一个关于perldoc的问题……除非一个人是perl n00b,否则应该知道在哪里可以找到文档。)@Ether-我认识的perl开发人员中没有一个使用过命令行perldoc。其中100%是Unix端开发人员。见鬼,我是一个不错的Perl开发人员,我不知道perldoc命令的存在,直到我看到上面提到它,尽管使用了在线版本。2011年,我认为通过了解文档的命令行版本来判断“知道在哪里可以找到文档”并不是一个非常可靠的过滤器。现在,如果他们不能回答“如此”…)您确定这是来自Perl::Critic而不是
    diagnostics
    严格来说,我们的
    没有定义变量。它为现有全局变量提供了一个新的词汇范围别名。这意味着代码>我的$x=10 < /代码>和<代码>我们的$Bigyx=100 < /代码>做非常微妙的事情:考虑在另一个,也许嵌套的范围内发生了什么,然后我们有代码>我的$x=20 < /代码>和<代码>我们的$Bigyx= 1000 000 < /代码>。这是一个名为
    $x
    的全新私有变量,但包global
    $Big\u x
    的值刚刚更改。这是不正确的<代码>我们的绝不会将变量声明为当前包的一部分。它声明了一个属于当前分数的词法,为同一个命名包变量提供了一个别名。但是词法是作用域的一部分,而不是包,因此即使您更改了包,也会保留其别名绑定<代码>外包装$外部::Var=10;我们的$Var;包装内部$内部::Var=20;比如说$Var可以打印10张,而不是20张。这也意味着您不能使用
    my$var=10的常规词汇阴影技巧;{my$var=$var*2;..}
    。看到了吗?@tchrist-我希望你指的是当前范围,而不是当前分数,否则我会非常困惑。如果这只是一个输入错误,而不是我以前从未听说过的一些深奥的perl术语,那么您绝对是对的。我唯一的借口是,我从来没有以如此奇特的方式使用过“我们的”(因为我的大部分Perl代码基本上都是面向对象的,而这种方法是糟糕的设计)。。。。。我对POD一无所知,这就是为什么我在搜索C时找不到任何东西。。。。这种错误让我想冷静地关掉电脑,然后走开。。。。thx@Cooter-这就是为什么如此存在:)。。。。现在,如果SO上的某个人只知道如何解决我的gdb“堆栈跟踪中的标识符”问题…:)