哪种方式最好只通过require方法在Perl上传包?

时间:2015-03-09 08:09:26

标签: perl perl-module

我有一般性问题:以下代码有什么区别?

代码1:

BEGIN {
push @INC,"/usr/local/bin/";
}
require "package.pl";

代码2:

require  "/usr/local/bin/package.pl";

哪一个更好?

1 个答案:

答案 0 :(得分:2)

我建议不要做任何类似的事情。从/usr/local/bin加载一些东西就好像它是一个模块一样,要求将来的痛苦和脆弱的代码。

为什么不使用模块呢?模块很像perl脚本,但它的设计和构建是为了导入并在其他脚本中使用。因此,将来搞乱它的任何人都会适当考虑到这一点(希望 - 但至少他们有机会,从bin目录导入随机脚本是没有机会的。)

这很简单 - 包装看起来像这样:

#!/usr/bin/perl

use strict;
use warnings;

package MyPackage; 

sub do_something {
    print "Done something\n"; 
}
1;

另存为' MyPackage.pm'。

然后加载它'使用:

#!/usr/bin/perl

use strict;
use warnings;

use FindBin;
use lib $FindBin::RealBin . "/modules"; 
use MyPackage; 

真的很简单,而不是容易破碎。