2011-12-29 85 views
3

我使自己成为一个自定义的PERL模块,它在由同一目录中的脚本调用时工作,但由于某种显而易见的原因,它不在目录之外。如何在不安装的情况下使用模块?例如:在PERL中使用自定义模块

use 5.012; 
use warnings; 
use Y:/my/dir/to/module.pm; 
+2

['使用LIB 'Y:/我的/ DIR';'] (http://perldoc.perl.org/lib.html)'use to :: module;' – 2011-12-29 17:50:57

+0

您应该使用'module-starter'程序为可安装(CPAN风格)模块构建模板。这样,您就可以以标准方式安装和测试您的模块,甚至可以在将来将其发布到CPAN。 (更多细节在这里:http://perldoc.perl.org/perlnewmod.html) – 2011-12-29 21:48:46

回答

6
use lib 'Y:/my/dir/to'; 
use module; # BAD name for module, lowercase is reserved for pragmas... 
+0

不知怎的,添加一个链接到'lib',我会投票。 ['perldoc lib'](http://perldoc.perl.org/lib.html)[p3rl.org/lib](http://p3rl.org/lib)[search.cpan.org/perldoc/ lib](http://search.cpan.org/perldoc/lib)或[metacpan.org/module/lib](http://metacpan.org/module/lib)就可以。 – 2011-12-29 18:01:58

+0

感谢文法标准提示 – 2011-12-29 18:04:29

0

如果你只有一个模块,而不是使用lib中,你可以这样做:

BEGIN { 
    unshift @INC,"dir"; 
    #@INC is the directory list, where perl searches for .pm files 
} 

use Foo::Bar; #dir/Foo/Bar.pm 

#or 

do "dir/Foo/Bar.pm"; #perldoc -f do 
+1

虽然技术上是真的,但并不是那么有用。 [lib](http://perldoc.perl.org/lib.html)包含在5.001 – 2011-12-30 18:20:09

+0

中我不知道。谢谢。 – 2012-01-01 16:59:49