为什么Perl中的$ a的严格编译指示失败?

时间:2014-01-23 09:16:10

标签: perl pragma

以下代码具有异常行为,我发现它很奇怪。它只是一个以其他方式工作的程序的一部分。

 #!/usr/bin/perl -w

    use strict;

    $a = 0;
    $abc = 0;                                                                                       

 exit 0;

由于use strict语句,Perl坚持要将第二个声明修改为:

my $abc = 0;

$a没有这样做!我在多个Linux发行版和Perl版本上试过这个。有人可以解释原因吗?

2 个答案:

答案 0 :(得分:10)

来自perldoc strict

  

由于sort()的特殊用途,变量$ a和$ b免于此检查

答案 1 :(得分:0)

$a用于sort(),因此不需要声明。