程序员有时会输错变量名、函数名等, use strict和use warnings对程序员进行了约束,避免了这类简单错误发生,也许算是懒惰的程序员的恶梦吧,毕竟会导致多敲N次键盘。
笔者认为,与其将大量时间花在程序调试排错上,不如约束程序员,使他们少犯简单错误,在工程规模较大的情况下,这种结束效果非常明显。比如以下test.pl的程序(因为程序员疏忽,将$sum+=$l中的$i输成了$l)
#test.pl
for ($i=1;$i<100;$i++){
$sum+=$l;
}
print $sum;
程序输出0,但这并不是程序需要的求和结果。
使用use strict和use warnings后,程序改成如下:
#test.pl
use strict;
use warnings;
my $i;
my $sum;
for ($i=1;$i<100;$i++){
$sum+=$l;
}
print $sum;
程序提示错误:
Global symbol "$l" requires explicit package name at test.pl line 7.
Execution of test.pl aborted due to compilation errors.
得益于use strict和use warnings,不习惯使用变量前事先声明的懒惰程序员犯的错误被轻易发现了。 1. 哈希