我正在研究一个大约4000行的Perl CGI脚本.我们的编码风格包括use strict并且use warnings通常,但在这个特定的(相当旧的)文件中,"使用警告"被注释掉,注释表明启用警告会泛滥Apache日志.
现在我打算将一些代码分成一个新的子程序.我想use warnings至少在那里.如何安全地限制use warnings一个子程序的效果?只是将use子句放在子程序中就可以了吗?
Fil*_*efp 13
是的,使用use warning将在您编写它的范围内.
use warning在子内写入只会影响给定例程(或块).
示例代码段
sub foo {
use warnings;
print my $a;
}
{
use warnings;
print my $b;
}
foo;
print my $c;
Run Code Online (Sandbox Code Playgroud)
产量
Use of uninitialized value $b in print at foo.pl line 8.
Use of uninitialized value $a in print at foo.pl line 3.
Run Code Online (Sandbox Code Playgroud)
请注意,没有关于使用的警告print my $c.
文件说什么?
这个pragma就像严格的pragma一样.这意味着警告编译指示的范围仅限于封闭块.这也意味着pragma设置不会泄漏文件(通过use,require或do).这允许作者独立定义将应用于其模块的警告检查的程度.
| 归档时间: |
|
| 查看次数: |
248 次 |
| 最近记录: |