在perl脚本中交替声明Strict pragma时会发生什么?

时间:2011-03-02 09:11:29

标签: perl perl-module

我是perl的新手并为我的项目尝试示例代码。 当我编写如下所示的代码以在perl中启用严格编译指示时会发生什么。

使用严格;

.......#源代码 .......

没有严格的“变种”;

.......#source code

在下一个pragma定义之前使用严格 #do所有严格编译指示?

......#源代码

没有严格的“潜艇”; #do仅禁用了subs strict pragma,其他人从此开始启用了吗?

...........

我可以在源代码之间嵌入使用Strict Pragma声明吗?

3 个答案:

答案 0 :(得分:2)

use strict是词法范围的,这意味着它将“保持有效”直到封闭的块,文件或eval(以先到者为准)结束。“

答案 1 :(得分:2)

对于它的价值,我认为最好使用范围来隔离pragma更改:

use strict;

{
    no strict;
    local $foo = 1;
}

local $bar = 1;

这会导致设置bar,但不会设置foo

答案 2 :(得分:1)

来自perldoc strict

  

如果没有提供导入列表,则全部   假设可能存在限制。

您可以随时更改严格的事情(“subs”,“vars”和“refs”)。