如何使用非标准目录加载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
答案 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";