2013-04-26 58 views
2

我有幾個使用相當多的CPAN模塊的Perl腳本。此外,這些腳本使用一些自定義perl模塊,而這些模塊又具有更多的CPAN依賴關係。Perl:如何在腳本中生成'use'd模塊列表?

一些腳本必須部署到生產環境中,其中預安裝的perl並不總是擁有所有需要的模塊。

有一種遞歸生成Perl腳本依賴項的列表,即所有爲它所需的CPAN模塊運行,以便它可以在部署之前確定?

快速解決方案似乎是grep perl腳本中的'use'關鍵字,但是這不會處理僅在運行時顯示的「隱藏」依賴關係(如Crypt :: SSLeay對於LWP上的https支持::用戶代理)。

回答

2

據我所知有是由於動態組成的eval語句運行時間之前解決所有的依賴沒有可靠的方法。

但是,如果你限制自己,以確定你使用的模塊的CPAN依賴關係樹,this site提供配方要達到的目標。如果你不保持你正在使用的CPAN模塊,掃描列表爲use/require無論並將結果輸送到MetaCPAN::API可能被罰款。

其他(可能更好)的方法已經被提出的這樣: