Bry*_*eld 6 perl absolute-path
如果我有一个.pm文件,有没有办法,我可以use把它放在我的@INC路径上?我认为在我的特定用例中会更清楚 - 比使用相对路径或添加此目录更清晰@INC.
编辑:澄清:
我希望避免的必要性,通过在每一个项目进行迭代@INC,而是直接指定我的文件感兴趣.例如,在node.js中,require('something')将搜索的路径列表,但require('/specific/something')在这里我告诉它会直接进入.
在Perl中,我不确定这是否具有相同的功能require,但它似乎有效.
但是,use声明需要裸字.这让我对如何进入绝对路径感到有点困惑.
你可以用这个:
use lib '/path/to/Perl_module_dir'; # can be both relative or absolute
use my_own_lib;
Run Code Online (Sandbox Code Playgroud)
你可以@INC自己修改(暂时,没有恐惧,这也是什么use lib):
BEGIN{ @INC = ( '/path/to/Perl_module_dir', @INC ); } # relative or absolute too
use my_own_lib;
Run Code Online (Sandbox Code Playgroud)
小智 4
根据评论中的讨论,我建议使用require它本身。就像下面这样,
require "pathto/module/Newmodule.pm";
Newmodule::firstSub();
Run Code Online (Sandbox Code Playgroud)
您也可以使用以下其他选项
use lib 'pathto/module';需要将此行添加到要在其中使用该模块的每个文件中。使用 lib '路径/模块';
使用新模块;
使用PERL5LIB环境变量。使用导出在命令行上设置它或将其添加到,~/.bashrc以便每次登录时它都会添加到您的@INC. 请记住 PERL5LIB 在所有 @INC 目录之前添加目录。所以会先使用它。你也可以在 apache httpd.conf 中设置它
SetEnv PERL5LIB /fullpath/to/module
Run Code Online (Sandbox Code Playgroud)或者将其设置在 BEGIN 块中。
| 归档时间: |
|
| 查看次数: |
22549 次 |
| 最近记录: |