假设我创建了一个名为的类Bar.该文件Bar.pm开始
package Bar;
Run Code Online (Sandbox Code Playgroud)
为避免与其他Bar类冲突,我将文件放在子目录中Foo.所以现在,当我使用课程时,我必须写
use Foo::Bar;
Run Code Online (Sandbox Code Playgroud)
我的问题是,我是否需要将类的名称更改为Foo::Bar?换句话说,我是否需要改变的第一线Bar.pm,以
package Foo::Bar;
Run Code Online (Sandbox Code Playgroud)
?问题是,如果我这样做,我现在必须将该类称为Foo::Bar无处不在,例如
my $obj = Foo::Bar->new();
Foo::Bar->doClassMethod();
Run Code Online (Sandbox Code Playgroud)
这是恼人的(同样的问题在讨论这个问题),尤其是因为我很喜欢的类方法.
是的,您必须将其名称更改为与该名称package完全匹配use.