使用 cpanp 安装本地模块 + 子模块
Installing local module + submodules using cpanp
我有以下项目结构:
A/
|- B.pm
|- B/
|- one.pm
|- two.pm
|- three.pm
在 B.pm
我有:
package A::B;
use A::B::one;
use A::B::two;
use A::B::three;
现在,我正在尝试使用 cpanp
在本地安装此模块。在 A
目录中时,我只是 运行:
cpanp i .
它说 模块 'A' 安装成功,但是,当我列出 $PERL5LIB
目录的内容时,我只能看到 B.pm
而不是 A/
.
我做错了什么?
这可能不是推荐的方法,但对于那些寻找 quick-and-dirty 解决方案的人来说,只需将所有内容移动到 lib
目录即可。
对我来说它看起来像:
A-B
└── lib
└── A
├── B
│ ├── one.pm
│ ├── three.pm
│ └── two.pm
└── B.pm
在 A-B
目录中时,我只是 运行:
cpan .
因为我只想在本地安装我的模块,这种方法对我有用,但如果您认为有充分的理由使用 module-starter 之类的工具(如@HåkonHægland 所建议)或至少写我自己的Makefile.PL(这实际上是我最终使用的方法,因为我想列出依赖项)。
我有以下项目结构:
A/
|- B.pm
|- B/
|- one.pm
|- two.pm
|- three.pm
在 B.pm
我有:
package A::B;
use A::B::one;
use A::B::two;
use A::B::three;
现在,我正在尝试使用 cpanp
在本地安装此模块。在 A
目录中时,我只是 运行:
cpanp i .
它说 模块 'A' 安装成功,但是,当我列出 $PERL5LIB
目录的内容时,我只能看到 B.pm
而不是 A/
.
我做错了什么?
这可能不是推荐的方法,但对于那些寻找 quick-and-dirty 解决方案的人来说,只需将所有内容移动到 lib
目录即可。
对我来说它看起来像:
A-B
└── lib
└── A
├── B
│ ├── one.pm
│ ├── three.pm
│ └── two.pm
└── B.pm
在 A-B
目录中时,我只是 运行:
cpan .
因为我只想在本地安装我的模块,这种方法对我有用,但如果您认为有充分的理由使用 module-starter 之类的工具(如@HåkonHægland 所建议)或至少写我自己的Makefile.PL(这实际上是我最终使用的方法,因为我想列出依赖项)。