我有一個變量$deployment_tarfile
,它包含一個帶有svn位置的tar文件。在我的Perl腳本反引號命令中,我使用如何在反向命令失敗時在Perl中獲取錯誤消息
$depsvn = `svn ls $deployment_tarfile`
檢查文件是否存在於svn中。如果失敗了,我們如何記錄錯誤信息?
目前,如果命令失敗,它只會顯示在shell中。我想專門打印它。我怎樣才能做到這一點?我試過$!
,但它不顯示。
$depsvn = `svn ls $deployment_tarfile`;
if ($? != 0) {
print "$!"; # It displays blank
}
我自己也嘗試$OS_ERROR
和$ERRNO
而不是$!
,但沒有奏效。
如何在svn命令失敗時在Perl中打印錯誤消息?
更新:我使用Perl版本5.8.8
您是否需要Subversion命令的輸出?如果沒有,那麼你應該使用'我的$統計=系統('svn','ls',$ deployment_tarfile)'並檢查退出狀態。如果您需要輸出以及退出狀態,那麼您應該查看[IPC :: Open2](http://metacpan.org/module/IPC::Open2) 甚至[IPC :: Open3] (http://metacpan.org/module/IPC::Open3) 如果您還需要查看STDERR – Borodin
爲什麼要調用命令行客戶端而不是使用['SVN :: Client'](http:/ /search.cpan.org/~mlanier/Alien-SVN-1.6.12.0/src/subversion/subversion/bindings/swig/perl/native/Client.pm)? – alroc
是的,我需要Subversion命令的輸出。我將嘗試IPC :: Open2 IPC :: Open3.Thanks獲取信息。 – Nitu