2011-11-15 9 views
3

我不是perl程序员,但需要调试错误。我正在使用Net:SFTP:Foreign包。

当我尝试获取文件,下面的调用失败:

$ sftp-> GET(源,目的地)或做{打印 “出事了”}

此行返回“的东西出错。”我想知道哪里出了问题!我如何提取失败的原因?

顺便说一下,这个脚本已经工作了几个月没有错误。该脚本非常可靠,我只是不知道如何捕捉失败的原因。

+1

该模块的手册可以在[此处](http://search.cpan.org/~salva/Net-SFTP-Foreign-1.67/lib/Net/SFTP/Foreign.pm )。 – Fluff

+1

哇,谢谢!我刚刚意识到我在使用Net:SFTP:Foreign,但试图找到Net:SFTP的错误处理文档! – Shahbaz

+0

为什么'do {print“出了问题”}'?你不能只使用“打印”出了什么问题“;'? –

回答

5
$sftp->get($source, $destination) 
    or print "something went wrong: " . $sftp->error . "\n"; 
6
$sftp->get(source, destination) or warn "get() failed with " . $sftp->error . "\n"; 
+1

使用'warn'是一个好主意,而不是'print' 。警告打印输出到STDERR并自动打印行号,如果你不用'\ n'结束行。 –

+0

而且,当使用鲤鱼模块时,'警告'可以很容易地更改为'鲤鱼' - 在较大范围内用于指出您在投诉时的代码位置。 – JRFerguson