微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Perl自定义模块的路径包含问题转载

Perl模块是重用代码的好方法,但是在调用自定义模块时的路径问题困扰了我许久。之前一直都是通过在代码中直接将自定义模块所在的绝对路径写入到@INC数组来解决的,以下示例,加入perl脚本放置在/opt/perl/bin,而自定义模块放在/opt/perl/lib目录:

BEGIN {
    push (@INC,'/opt/perl/lib');
}

或者

BEGIN {
    unshift @INC,'/opt/perl/lib';
}

或者

 use lib '/opt/perl/lib';

使用绝对路径比较麻烦,如果将程序迁移到另外的安装目录,就需要去更改所有的脚本。而直接在use lib中使用相对路径,如use lib ‘../lib’;,测试发现手动执行bin目录下的perl脚本是可以的,但是放到crontab里去跑就找不到模块了。于是想先找到bin目录的路径,然后通过相对路径跳转到lib目录,在《Perl Cookbook》终于找到了我想要的,使用FindBin模块就能实现梦想了:

use FindBin qw($Bin);
use lib "$Bin/../lib";

 

本文网址:http://www.ningoo.net/html/2009/perl_module_use_lib_path.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐