【发布时间】:2013-02-13 13:38:38
【问题描述】:
如果我有一个.pm 文件,有没有办法可以use 它而不将它放在我的@INC 路径上?我认为这在我的特定用例中会更清晰 - 比使用相对路径或将此目录添加到 @INC 更清晰。
编辑:澄清:
我希望避免遍历 @INC 中的每个项目的必要性,而是直接指定我感兴趣的文件。例如,在 Node.JS 中,require('something') 将搜索路径列表,但是require('/specific/something') 会直接去我告诉它的地方。
在 Perl 中,我不确定这与 require 中的功能是否相同,但它似乎可以工作。
但是,use 语句需要裸词。这让我对如何输入绝对路径感到有些困惑。
【问题讨论】:
-
use module之前的use lib语句对于您的情况是正确的。但是你为什么不能使用require。它更适合您的问题。您也可以在 apache conf 中SetEnv PERL5LIB环境变量将该目录应用于整个项目或应用程序。 -
我需要一个
.pm文件。我没有尝试过,但它似乎不会正常工作。我通常使用CGI::ReadParse();或use CGI ':cgi';之类的语法调用模块中的函数。我不知道如何使用require为.pm文件做到这一点,但如果我能用require做到这一点,它确实可以解决我的问题。 -
它有效。像这样尝试
require "Newmodule.pm";,然后致电Newmodule::subname();。它执行得很好。
标签: perl absolute-path