【发布时间】:2013-07-16 08:05:58
【问题描述】:
在 Foo.pm 中使用此代码:
use strict;
use warnings;
package Foo;
BEGIN {
$Foo::AUTHORITY = 'cpan:ETHER';
}
1;
将文件作为模块加载不会出错:
$ perl -I. -mFoo -e1
$
然而,直接加载文件:
$ perl Foo.pm
Name "Foo::AUTHORITY" used only once: possible typo at Foo.pm line 6.
而且,perl -e'require "Foo.pm"' 也不会发出警告。
为什么会有这种差异?显然文件的解析方式不同, 但是如何以及为什么?
【问题讨论】:
-
你不必指定
-I.,当前目录总是包含在@INC中。 -
@TLP - 不在污点模式
-
@mob 好的,几乎总是。
-
是的,但是对于污点模式,在这些情况下必须在命令行上指定 -T。
标签: perl module warnings require