1

У меня есть Perl-программа с именем /usr/bin/octbatch работающая как скрипт на Fedora 17 Linux.

Когда я запускаю эту команду:

/usr/bin/octbatch

Я получаю ошибку:

Can't locate Time/Piece.pm in @INC (@INC contains: 
/usr/local/lib64/perl5 /usr/local/share/perl5 
/usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl 
/usr/lib64/perl5 /usr/share/perl5) at /usr/bin/octbatch line 6.
BEGIN failed--compilation aborted at /usr/bin/octbatch line 6.

Вот соответствующие строки скрипта Perl:

#!/usr/bin/perl -wT

$ENV{PATH} = "/bin:/usr/bin:/usr/local/bin";
use strict;
use POSIX qw(setsid :sys_wait_h);

use Time::Piece;
use Time::Local;

Я должен установить Piece.pm, чтобы Perl мог его найти. Я уже установил его с помощью этой команды (по умолчанию):

/usr/bin/perl -MCPAN -e install Time::Piece

У меня есть файл Piece.pm в /home/el/perl5/lib/perl5/x86_64-linux-thread-multi/ однако, когда я запускаю команду octbatch, я получаю ту же ошибку, что и выше. Как будто он даже не может его найти.

Вот моя переменная PERL5LIB:

el@defiant ~/gnuoctbluehost/single_stock_analysis $ env | grep PERL5

PERL5LIB=/home/el/perl5/lib/perl5/x86_64-linux-thread-multi:/home/el/perl5/lib/perl5

И Piece.pm находится в /home /el /perl5 /lib /perl5 /x86_64-linux-thread-multi

Итак, мой вопрос: почему он не находит мой файл Piece.pm? И как я могу получить переменную @INC, чтобы включить ее. Или как мне заставить Perl это увидеть?

1 ответ1

2

Fedora 17 включает Time::Piece

Используйте команду: yum install perl-Time-Piece

Вы можете узнать это с помощью поиска Google: fedora 17 Time-Piece и нажмите на первую ссылку.

Обойти, чтобы вручную включить путь и библиотеку:

Убедитесь, что следующая строка перед use Time::Piece; но после #!/usr/bin/perl -wT .

use lib "/home/el/perl5/lib/perl5/x86_64-linux-thread-multi";

Что говорит моей программе на Perl, где искать Time::Piece. Тогда программа работает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .