1

foo在文件中有一个名为 perl 的子例程C.pmC.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如果我在调用该子例程时明确写出路径, 我认为我不需要包含该语句。

4

1 回答 1

8

做两use件事:

  1. require是一个文件,它解析、编译和执行它
  2. 它调用import新模块上的方法,该方法可以在您当前的命名空间中安装子例程。

在使用其中定义的 subs 之前,您必须以某种方式执行模块。

如果不想导入任何子程序或其他符号,可以给出use空列表:

use A::B::C ();
于 2013-07-13T00:36:45.697 回答