我最近編寫了一個新的Perl腳本來殺死基於進程名/用戶名的進程,並使用Classes擴展它,以便我可以在其他程序中重新使用進程代碼。我目前的佈局是 -我的Perl腳本如何在同一目錄中找到它的模塊?
/home/mutew/src/prod/pskill <-- Perl script
/home/mutew/src/prod/Process.pm <-- Package to handle process descriptions
我在$ PATH變量中加入了〜/ src/prod來從任何地方訪問腳本。從其駐留目錄以外的任何目錄運行腳本會導致「無法在@INC中定位Process.pm」(考慮到除了/ usr中的共享目錄以外,@INC僅包含當前目錄 - '')。我一直在使用的一種解決方法是使用lib指令,因爲 -
use lib '/home/mutew/src/prod';
但這是一個主要的可移植性問題。任何解決方案,這也將允許我將腳本導出到其他系統,而無需更改?
編輯
- 我選擇了 'depesz' 的答案,因爲它的簡單性和核心模塊的使用正確的。
- brian d foy的答案雖然提出了其他方法來完成同樣的工作(TMTOWTDI),但他在perlfaq8中的貢獻使這個問題變得絕對多餘。
也許這只是我的安裝,但如果兩個文件都在同一個目錄中,我只需「使用FILENAME.pm」即可。然後「我的$ newVar = PACKAGENAME-> new();」用於任何對象編程。 – 2011-05-25 22:29:56
哇,這應該比perl更容易!讓輕鬆的事情變得簡單等。 – 2016-07-16 05:13:03