从非标准目录加载Perl模块

时间:2018-07-04 12:35:42

标签: perl perl-module

如何使用非标准目录加载Perl模块?

我从cpan网站下载了跟踪模块,并放入了非标准目录(/ home / nrama / perl-script)。但是在执行以下脚本时,它不会占用我的非标准目录。请让我知道如何解决此问题。

跟踪模块网址:

https://metacpan.org/pod/release/JV/Debug-Trace-0.05/lib/Debug/Trace.pm

错误:

在shift.pl第3行“使用跟踪”附近的

语法错误。 由于编译错误,shift.pl的执行中止了。

示例脚本:-

use strict;
use lib ("/home/nrama/perl-script");
use Trace.pm;

func('Nataraj', 'vino', 'mano' );
sub func {
my $name_1 = shift;
my $name_2 = shift;
my $name_3 = shift;
print "say hello to $name_1 $name_2 $name_3\n";
}

注意:使用Perl v5.6.0

1 个答案:

答案 0 :(得分:3)

use Trace.pm;

无效的Perl,因此语法错误。应该是

use Debug::Trace;

此外,在脚本中编码绝对路径没有任何意义。您应该删除

use lib ("/home/nrama/perl-script");

,然后在登录脚本中将env var PERL5LIB设置为该路径

export PERL5LIB="$HOME/perl-script"

或将其替换为脚本的相对路径,例如

use FindBin qw( $RealBin );
use lib $RealBin;

use FindBin qw( $RealBin );
use lib "$RealBin/lib";