2012-02-16 57 views
-1

我在Cygwin環境中編寫了一個perl腳本。在裏面,我使用反引號來執行另一個程序,並將返回的值分配給一個變量。在兩週前我在cygwin中升級了一些軟件包之前它運行良好。現在反引號沒有任何價值。有什麼想法嗎?反引號不會在perl中返回任何值

+2

顯而易見的問題是「當您手動執行命令行程序時會發生什麼?」它仍然有效嗎? – 2012-02-16 00:17:27

+0

命令行可以正常工作 – yunreer 2012-02-16 01:13:39

+1

您能否將具有反引號或其某種傳真的實際命令放入問題中?這裏幾乎沒什麼可走的。 – kbenson 2012-02-16 01:50:09

回答

3

嘗試檢查$?的值。它包含執行的最後一個外部命令的返回代碼,但它超載以包含額外信息,例如殺死命令的信號以及是否存在覈心轉儲等。

實際的返回代碼可以通過

my $return_code = $? >> 8; 

如果是零,如果沒有,命令成功執行,這就是錯誤狀態commadn退出,(什麼INT主()在C返回,例如)。