为什么Perl的限制没有抱怨未申报的$ a?

时间:2010-03-10 10:55:36

标签: perl strictures

为什么strict没有发出错误:

use strict;

$a = $a + 1;

4 个答案:

答案 0 :(得分:14)

$ a和$ b是sort使用的特殊全局变量,所以它们总是被定义。尝试用$ c代替它,你会收到错误。

答案 1 :(得分:6)

虽然strict并未抱怨特殊的$a$b变量, perlcritic将检测其使用情况:

  

应将魔术变量指定为   “本地”......(严重程度:4)

答案 2 :(得分:5)

$a是一个特殊的全局变量。它不需要声明。请参阅perldoc perlvar

答案 3 :(得分:2)

在Perl中有一些全局变量。此处$a$b用于sort功能。

我想你可能已经注意到了,就像在这句话中一样:

sort { $a <=> $b } @array_name ;