2016-03-01 4 views
1

У меня есть скрипт Perl test.pl, который включает в себя другой модуль perl module.pm, который находится под ключом crypt/Module. исходный код склепа/test.pl является:PAR packer не включает модули, определенные пользователем

#!/usr/bin/perl 
use Term::ANSIColor qw(:constants); 
use File::Path; 
use POSIX qw(strftime); 
use File::Basename qw(dirname); 
use Cwd qw(abs_path); 
use lib dirname(dirname abs_path $0); 
use crypt::Module::fact qw(factorial); 

&factorial();#function present in fact.pm 
print("Thanks for that thought \n"); 

Команда PAR Пакер получили в

pp -M Module::fact -o test test.pl 

на копирование только исполняемый тест на другой путь к каталогу и исполняющего его я набираюсь ниже погрешности:

Can't locate crypt/Module/fact.pm in @INC (you may need to install the crypt::Module::fact module) 

Каким образом можно включить модуль в исполняемый файл?

ответ

0

Во-первых, я бы рекомендовал использовать параметры -c и/или -x для утилиты pp, которые используются «для определения дополнительных зависимостей времени выполнения». Я привык использовать и то, и другое.

Хотя вы используете опцию -M для добавления модуля, я думаю, что у вас есть опечатка с этой опцией. В вашем коде вы используете модуль «crypt :: Module :: fact», но вы указываете модуль «Module :: fact» с параметром -M. Возможно, если вы использовали «-M crypt :: Module :: fact» вместо «-M Module :: fact», ваша проблема может быть решена.

Кроме того, вам может потребоваться использовать -I (или -lib), чтобы указать путь к каталогам дополнительных библиотек модулей.