Perl - 从主脚本中的其他目录获取模块的绝对路径
Perl - get abs path to module from other directory in main script
我创建了一个简单的 perl 脚本,它分为 2 个文件 - main.pl
和 content.pm
主脚本放在Project
目录下,content.pm
(模块)放在Project/utils
目录下。现在我想在 main.pl
中使用 content.pm
我做了这样的东西来使用这个模块:
use Cwd;
use lib Cwd::abs_path(getcwd()."/utils");
use utils::content;
但是如果我这样做,我会得到一个错误:
Cant locate utils/content.pm in
@INC (you may need to install the utils::content module)
@INC contains: /Perl/utils /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.24.1 ...)
at ./main.pl line 10.
是否可以 运行 这个 main.pl 脚本使用 content.pm 而没有错误?也许我不应该使用 getcwd()
(我认为它使用工作目录而不是 abs_path,但我不确定)?
我想你要找的是FindBin
。
具体来说:
use FindBin qw( );
use lib $FindBin::RealBin."/utils";
use content;
我创建了一个简单的 perl 脚本,它分为 2 个文件 - main.pl
和 content.pm
主脚本放在Project
目录下,content.pm
(模块)放在Project/utils
目录下。现在我想在 main.pl
中使用 content.pm
我做了这样的东西来使用这个模块:
use Cwd;
use lib Cwd::abs_path(getcwd()."/utils");
use utils::content;
但是如果我这样做,我会得到一个错误:
Cant locate utils/content.pm in
@INC (you may need to install the utils::content module)
@INC contains: /Perl/utils /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.24.1 ...)
at ./main.pl line 10.
是否可以 运行 这个 main.pl 脚本使用 content.pm 而没有错误?也许我不应该使用 getcwd()
(我认为它使用工作目录而不是 abs_path,但我不确定)?
我想你要找的是FindBin
。
具体来说:
use FindBin qw( );
use lib $FindBin::RealBin."/utils";
use content;