2016-03-01 25 views
1

我有一個Perl腳本test.pl,它包含另一個Perl模塊fact.pm,它位於crypt/Module目錄下。 隱窩/ test.pl的源代碼是:PAR包裝器不包括用戶定義的模塊

#!/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

首先,我建議使用pp實用程序的-c和/或-x選項,它用於「確定附加的運行時依賴性」。我養成了使用兩者的習慣。

雖然您正在使用-M選項來添加模塊,但我認爲您有該選項的拼寫錯誤。在你的代碼中,你使用的是「crypt :: Module :: fact」模塊,但你使用-M選項指定了「Module :: fact」模塊。也許如果你使用「-M crypt :: Module :: fact」而不是「-M Module :: fact」,你的問題可能會被解決。

此外,您可能需要使用-I(或-lib)指定任何其他模塊庫目錄的路徑。