我在寫一個Perl腳本,它接收數據並將其寫入Excel文件。我正在使用Excel::Writer::XLSX
來做到這一點。如何在我想給別人的perl腳本中使用CPAN模塊?
我希望編寫腳本,然後將其交給我的團隊的其他成員,以便我們可以在需要時使用它來編譯數據。
我有這幾個問題:
做我的同事們需要有模塊安裝的腳本工作?
如果不是,我該如何將這個模塊包含在腳本中才能提供給他們?
有沒有更好的方式來做到這一點,使用我選擇的模塊?
我在寫一個Perl腳本,它接收數據並將其寫入Excel文件。我正在使用Excel::Writer::XLSX
來做到這一點。如何在我想給別人的perl腳本中使用CPAN模塊?
我希望編寫腳本,然後將其交給我的團隊的其他成員,以便我們可以在需要時使用它來編譯數據。
我有這幾個問題:
做我的同事們需要有模塊安裝的腳本工作?
如果不是,我該如何將這個模塊包含在腳本中才能提供給他們?
有沒有更好的方式來做到這一點,使用我選擇的模塊?
有幾種方法可以做到這一點。一種選擇是將指定依賴關係的Makefile.PL
放在一起。這使您可以將腳本捆綁爲分佈。例如。
use ExtUtils::MakeMaker;
WriteMakefile(
ABSTRACT => 'myscript creates Excel files',
AUTHOR => 'A.U. Thor',
EXE_FILES => [ 'myscript' ],
NAME => 'myscript',
VERSION => '1.2.3',
PREREQ_PM => {
'Excel::Writer::XLSX' => '0.88',
},
);
然後,人們可以做perl Makefile.PL
將通知他們的依賴關係。如果您執行make dist
並分發生成的存檔文件,則他們還可以使用cpanm來安裝腳本及其依賴項。
另一種選擇是放在一起cpanfile。然後,收件人可以使用諸如cpanm之類的工具安裝所有依賴項。
現在,如果您要將腳本分發給通常不使用Perl的用戶,並且希望他們只需點擊並運行等,則可能需要查看pp。
我不認爲你或者布賴恩已經解決了OP的具體問題 – Borodin
很久以前,我寫了一個叫做scriptdist的程序,將一個單文件程序變成一個類似CPAN的發行版,並附有一個構建文件。這樣你可以把它作爲一個檔案傳遞出去,人們可以像對待任何其他CPAN分配一樣對待它。它基本上自動化what Sinan posted。我寫了關於它的Dr. Dobbs。
有一個技巧,你可以使用,如果你想傳遞檔案。 cpan
工具可以從當前目錄安裝。這將得到的依賴關係(其中,被依賴關係的性質,是必填項):
$ cpan .
這樣的話,你可以安裝你的程序和它的依賴沒有把任何一個CPAN般的倉庫。
很遠不清楚,你需要知道
做我的同事們需要有模塊安裝的腳本的工作是什麼?
我認爲,很明顯,你的同事需要訪問你的代碼能夠利用它
目前尚不清楚你所寫的內容,但如果你已經創建了一個模塊,那麼任何程序訪問到您的模塊文件可以簡單地use
它訪問其功能
如果不是,我該如何包裝模塊與腳本給它們?
您的「如果不是」尚不清楚。如果這是你寫的手段「如果他們不需要安裝爲腳本的工作模塊」,我懷疑你的意圖
「我怎麼包與模塊腳本「你問的是如何創建一個模塊,或者你已經有一個?通常情況下,模塊由誰寫與use
聲明
腳本如果你有一個模塊的程序員訪問和你希望其他人能夠與use
加載它,那麼它必須出現在他們的@INC
列出的目錄之一陣列。如果你在單獨的系統上工作,那麼最好創建一個包,你可以根據需要進行修改,並讓其他人更新。
是否有更好的方式來使用我選擇的模塊?
您是指Excel::Writer::XLSX
還是您自己的模塊?
如果Excel::Writer::XLSX
正在做你所需要的,那麼你可能不會改變。但是如果你在某種程度上遇到了問題,那麼你需要提出一個新問題並描述這些問題
參見http://stackoverflow.com/q/4741142/2766176 –