我有一个名为foo
的perl子例程,位于文件C.pm
中。 C.pm
位于目录B
中,位于目录A
中,如下所示:A > B > C.pm > foo
我正试图从另一个文件中调用foo子例程。如果我执行以下操作,它将起作用:
use A::B::C qw(foo);
//Code here
foo($temp)
但是,以下操作不起作用
//Code here
A::B::C::foo($temp)
为什么不呢?如果我在调用该子例程时明确写出路径,我以为我不需要包含use
语句。
答案 0 :(得分:8)
use
做了两件事:
require
是一个解析,编译和执行它的文件import
方法,该方法可以在当前命名空间中安装子例程。在使用其中定义的subs之前,你必须以某种方式执行模块。
如果您不想导入任何子例程或其他符号,可以给use
空列表:
use A::B::C ();