为什么Perl没有严格警告未申报的$ a?

时间:2010-09-09 05:06:29

标签: perl strictures

有人可以向我解释下面的代码。这种行为已经有一段时间了(在5.8.5,5.8.8,5.10.1,5.12.2上测试过),所以背后必然有原因吗?

$ perl -M5.012 -E '$aa=2'
Global symbol "$aa" requires explicit package name at -e line 1.

$ perl -M5.012 -E '$a=2'

感谢。

2 个答案:

答案 0 :(得分:15)

这是在strict文档:

  

由于sort()的特殊用途,变量$ a和$ b   免除这张支票。

始终检查the docs。大多数答案都在那里:)

答案 1 :(得分:11)

$a(以及$b和其他许多人)是一个全局变量。它旨在用于sort功能,例如sort { $a <=> $b } @listperldoc perlvar列出了所有perl的内置全局变量及其含义。