有了这个代码在Foo.pm:为什么`perl Foo.pm`和`perl -I。 -mFoo -e1`表现不同?
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
@TLP - 不在污染模式 – mob
@mob好吧,*几乎*总是。 – TLP