有了這個代碼在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