【问题标题】:Perl - get abs path to module from other directory in main scriptPerl - 从主脚本中的其他目录获取模块的绝对路径
【发布时间】:2016-12-02 15:47:51
【问题描述】:

我创建了一个简单的 perl 脚本,它分为 2 个文件 - main.plcontent.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.

是否可以使用 content.pm 运行这个 main.pl 脚本而没有错误?也许我不应该使用getcwd()(我认为它使用工作目录而不是abs_path,但我不确定)?

【问题讨论】:

标签: perl module getcwd


【解决方案1】:

我认为您正在寻找的是FindBin

具体来说:

use FindBin qw( );
use lib $FindBin::RealBin."/utils"; 
use content; 

【讨论】:

  • 注意:这里假设 OP 在 content.pm 中使用 package content; 而不是 package utils::content;
  • 我在 content.pm 中有package content
猜你喜欢
  • 2013-06-26
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 2018-12-27
  • 1970-01-01
  • 1970-01-01
  • 2022-10-17
相关资源
最近更新 更多