引自mysql.pm
:
3 package DBD::mysql;
4 use strict;
????
17 $err = 0;>--# holds error code for DBI::err
18 $errstr = "";>--# holds error string for DBI::errstr
19 $drh = undef;>--# holds driver handle once initialised
Run Code Online (Sandbox Code Playgroud)
奇怪的是,我use warnings;
使用这个模块的所有程序都没有给出任何警告.
为什么?
在来源的第5行:
use vars qw(@ISA $VERSION $err $errstr $drh);
Run Code Online (Sandbox Code Playgroud)
请参阅使用vars文档.
这是我们在our
介绍Perl 之前能够制作全局和严格共存的方法之一.虽然它现在被认为是"过时的"(根据文档),但它仍然存在于实际代码中.我猜在某些情况下它符合类别,"如果没有破坏,请不要修复它." 你找到了其中一个案例.
这些变量vars
在第5行使用pragma 预先声明:
use vars qw(@ISA $VERSION $err $errstr $drh);
Run Code Online (Sandbox Code Playgroud)
这就是为什么Perl尽管use strict
生效仍然不抱怨的原因.
归档时间: |
|
查看次数: |
134 次 |
最近记录: |