我有一個調用Perl插件的CGI接口。這些腳本位於不同的文件夾中,Perl應該讀取位於另一個文件夾中的XML文件。爲了簡單起見,我舉一個例子:如何在Perl中檢索腳本路徑? (不是正在運行的)
/a/b/cgi-bin/test.cgi # calls test.pl
/e/plugins/test.pl # reads config.xml
/e/etc/config.xml
現在我不知道如何讓Perl插件讀取配置文件。當然,我不能在腳本上寫下路徑,因爲明天我可能會改變這個文件的位置。我試過在test.pl上使用Cwd和abs_path,但是此方法返回「運行」路徑,而我想要test.pl的「位置」路徑,以便可以修改它以便構建config.xml路徑。有任何想法嗎?
編輯:使用realpath而不是abspath解決了我的問題,或者至少看起來如此,我會做更多的測試。
EDIT2:好真實路徑的作品,但現在我有... Perl的插件使用,我提出,但ofcourse現在寫使用MyPackage的一些額外的軟件包另一個問題;不再工作,因爲它看起來在錯誤的文件夾...有沒有辦法修改環境變量?我不知道什麼可以避免我改變數千行代碼。
編輯3:好的解決了這個問題,我想我只是將我的軟件包安裝在INC文件夾中,所以我不必再搞亂我的代碼了。
感覺你忘了在這裏發佈一些信息。如:你如何找到'test.pl'開頭? – TLP 2012-03-29 08:14:35
我有一個告訴test.cgi如何找到插件的小文本文件。 – raz3r 2012-03-29 08:19:05
難道你不能通過該信息(它從哪裏加載'test.pl')到你在插件中調用的任何函數? – 2012-03-29 08:28:56