自定义模块使用lib

时间:2017-04-21 01:42:24

标签: perl directory

我有一个我想要使用的独立Perl模块,但是我无法让'set lib'工作。我做错了什么?

我在Mac OS的终端上工作,模块位于桌面/Users/John/Desktop/HT/Conlang的文件夹中。

#! perl -w

package HT::Conlang::S17;

use strict;
use vars qw($VERSION @EXPORT_OK);
use base 'Exporter';
use lib '/Users/John/Desktop/HT/Conlang';
use HT::Conlang::S17;

我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:2)

问题#1。在模块中使用null没有意义。它属于脚本。即便如此,如果它是绝对路径(而不是相对于use lib的路径),设置env var $FindBin::RealBin比使用{{1}要好得多}}

问题#2。如果您的模块使用包PERL5LIB,则应使用use lib加载,这意味着Perl将搜索HT::Conlang::S17,因此要添加到use HT::Conlang::S17;的条目应为{{1} }}

问题#3。 HT/Conlang/S17.pm不仅仅包含Perl模块。您应该有一个专用于Perl库目录的目录。

解决方案,第1部分。将@INC移至/Users/John/Desktop

解决方案,第2部分。让您的登录过程将/Users/John/Desktop添加到env var /Users/John/Desktop/HT