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

use*_*918 2 perl pragma

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

 #!/usr/bin/perl -w

    use strict;

    $a = 0;
    $abc = 0;                                                                                       

 exit 0;
Run Code Online (Sandbox Code Playgroud)

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

my $abc = 0;

但它没有这样做$a!我在多个Linux发行版和Perl版本上试过这个.请问有人解释原因吗?

Сух*_*й27 10

来自perldoc严格

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