从非标准目录加载 Perl 模块
Loading Perl Modules from non-standard directories
如何使用非标准目录加载 Perl 模块?
我从cpan网站下载trace模块,放到非标准目录下(/home/nrama/perl-script)。但它在执行以下脚本时不会占用我的非标准目录。请让我知道如何解决这个问题。
跟踪模块URL:
https://metacpan.org/pod/release/JV/Debug-Trace-0.05/lib/Debug/Trace.pm
错误:
shift.pl 第 3 行语法错误,靠近 "use Trace."
由于编译错误,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
use Trace.pm;
不是有效的 Perl,因此是语法错误。应该是
use Debug::Trace;
此外,在脚本中对绝对路径进行硬编码是没有意义的。你应该删除
use lib ("/home/nrama/perl-script");
并在登录脚本中将环境变量 PERL5LIB
设置为该路径
export PERL5LIB="$HOME/perl-script"
或者替换成脚本的相对路径如
use FindBin qw( $RealBin );
use lib $RealBin;
或
use FindBin qw( $RealBin );
use lib "$RealBin/lib";
如何使用非标准目录加载 Perl 模块?
我从cpan网站下载trace模块,放到非标准目录下(/home/nrama/perl-script)。但它在执行以下脚本时不会占用我的非标准目录。请让我知道如何解决这个问题。
跟踪模块URL:
https://metacpan.org/pod/release/JV/Debug-Trace-0.05/lib/Debug/Trace.pm
错误:
shift.pl 第 3 行语法错误,靠近 "use Trace." 由于编译错误,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
use Trace.pm;
不是有效的 Perl,因此是语法错误。应该是
use Debug::Trace;
此外,在脚本中对绝对路径进行硬编码是没有意义的。你应该删除
use lib ("/home/nrama/perl-script");
并在登录脚本中将环境变量 PERL5LIB
设置为该路径
export PERL5LIB="$HOME/perl-script"
或者替换成脚本的相对路径如
use FindBin qw( $RealBin );
use lib $RealBin;
或
use FindBin qw( $RealBin );
use lib "$RealBin/lib";