我继承了一些perl代码,当然没有使用严格或警告,我继续使用未初始化的变量等。
我想将我正在修改的代码部分括起来:
use warnings;
use strict;
... my code changes and additions ...
no strict;
no warnings;
这似乎有效,但是当我说这些是导入当前"块范围的编译器指令时,我有解密the perldoc on use意味着什么的问题。"这是否意味着任何范围都可以use strict
与no strict
取消配对?全局范围尾部的no strict
是否基本上在同一范围内撤消了use strict
的含义?
答案 0 :(得分:11)
“阻止范围”意味着use strict;
和no strict;
都会从它们所在的位置到最里面的封闭块的末尾生效,所以不,后来的no strict
不撤消早些时候use strict
。它只是从代码中的那一点开始为最里面的范围更改它。所以:
{
use strict;
# strict in effect
{
# strict still in effect
no strict;
# strict not in effect
}
# strict in effect
no strict;
# strict not in effect
use strict;
# strict in effect
}