Загрузка модулей Perl из нестандартных каталогов - PullRequest
0 голосов
/ 04 июля 2018

Как загрузить модули Perl, используя нестандартные каталоги?

Я загружаю модуль трассировки с веб-сайта cpan и помещаю в нестандартные каталоги (/ home / nrama / perl-script). но он не берет мои нестандартные каталоги при выполнении скрипта ниже. пожалуйста, дайте мне знать, как решить эту проблему.

URL-адрес модуля трассировки:

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 голосов
/ 04 июля 2018
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";
...