2014-01-25 60 views
0

我面臨一個非常奇怪的問題。我有一個perl腳本,它在內部調用另一個perl腳本。當我從unix手動運行時,我沒有遇到任何問題。從控制m調度程序perl腳本complilation問題

現在,當從control-m調度程序調度時的相同腳本給內部腳本發現編譯錯誤時找到date:manip包。

無法在@ INC.BEGIN中找到Date/Manip.pm失敗 - 腳本的編譯中止。

不幸的是,由於客戶端問題,我不能在這裏附上腳本。

但有人可以幫忙嗎?

回答

1

這通常意味着您的命令行上的庫路徑(當您從unix運行時)與在control-m中運行時不同。

在腳本的頂部,在任何其他的Perl代碼,補充一點:

BEGIN { die 'INC: ' . join("\n", @INC) } 

這將立即拋出包含Perl將搜索找到模塊的所有庫路徑異常。

現在再次在unix和contol-m中運行該腳本。包含路徑(包含在@INC中)的庫可能不同。 control-m可能缺少一個或多個庫路徑。任何缺失都可以明確包含:

use lib '/some/library/path'; 

這就是簡單的答案。

如果您遇到此問題(通常是這種情況),那麼您有更大的環境問題,您應該解決並且沒有一個通用的答案。做use lib修復是一個快速入門,但不是長期處理這個問題的正確方法。