我試圖設置特定的LD_LIBRARY_PATH
來加載libpcap的修改版本,而不是系統範圍的。在加載perl模塊之前修改ld.so路徑
這個作品當然如果我用LD_LIBRARY_PATH=/blah ./script_name
運行整個腳本。我想讓這個用戶透明,所以我嘗試設置$ENV{'LD_LIBRARY_PATH'}
。但這並不會改變行爲。我試圖將它放在BEGIN
區塊中,以使其在其他use
-s之前工作,但在那裏也沒有運氣。
我懷疑這是因爲在運行腳本的任何部分之前,在進程開始時ld加載所有配置/配置自身。有什麼方法可以使它工作嗎?
我想避免這樣愚蠢的事情:
if (check_parent()) { $ENV...=.... ; `$0` ; exit }
(或外部包裝作爲被建議 - 少克魯夫特和隨機包裝越好)
如何使用包裝bash腳本將導出任何變量,然後執行您的perl腳本? – thkala 2010-12-03 15:27:02
@thkala:這當然會起作用,但我已經爲這個腳本提供了另外一個包裝器(並且它實際上不負責設置env變量),並且在某些時候很難管理所有層。我正在尋找一種方法來做到這一點,沒有任何外部幫手。 – viraptor 2010-12-03 15:30:03