用严格;行为在Perl中没有按预期工作

时间:2014-07-09 06:26:12

标签: perl

我编写了一个perl代码示例:

use strict;
use warnings;
$a=1;
$b=2;
if($b==2) {
    $a=3;
}
print $a;

理想情况下,当我运行此代码时,它应该将错误称为“全局符号”$ a“需要显式包名...” 但它没有给出任何错误。它将输出设为“3”。 为什么这样?据我所知,如果我们使用strict,那么我们需要定义变量的范围,否则会产生错误。 我的理解错了吗?

1 个答案:

答案 0 :(得分:6)

$a$b是特殊变量,因此与strict一起使用时不会出现上升错误。

来自perldoc strict

  

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

相关问题