繁体   English   中英

Perl如何从另一个软件包导入我的软件包?

[英]Perl how to import my package from another package?

这是我的文件夹结构:

XFolder/
XFolder/YFolder/
XFolder/YFolder/package1.pl
XFolder/package2.pl

package2.pl ,我有:

package X::Pa2

package1.p1 ,我有:

package X::Y::Pa1

package1.pl ,当我这样做时:

use X::Pa2;

我懂了

Can't locate X/PA2.pm in @INC (you may need to install the X::Pa2 module)

请如何解决?

我知道问题出在哪里,我尝试使用Google寻求帮助,但无法将X::Pa2添加到我的@INC而且我不知道Perl专家是否有更标准的解决方案

模块应具有.pm扩展名,并且文件名应与程序包名称匹配。

修理:

mkdir -p X
mv XFolder/package2.pl X/Pa2.pm

mkdir -p X/Y
mv XFolder/YFolder/package1.pl X/Y/Pa1.pm

这些路径必须相对于@INC某些路径。

如果在多个脚本中使用了这些模块,请将以下内容添加到您的登录脚本中:

export PERL5LIB=/path/to/lib

如果这些模块仅由一个脚本使用,并且基本目录是该脚本所在的目录,请在脚本中添加以下内容:

use FindBin 1.51 qw( $RealBin );
use lib $RealBin;                    # Or maybe: use lib "$RealBin/lib";

要么

use Cwd qw( abs_path );
use File::Basename qw( dirname );
use lib dirname(abs_path($0));       # Or maybe: use lib dirname(abs_path($0))."/lib";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM