答案 0 :(得分:4)
你不能。
我查看了Net::SFTP和Net :: SSH :: Perl的源代码。它们都没有DESTROY
方法,因此没有进行明确的清理。也没有disconnect
或quit
或类似。
Net :: SSH :: Perl有一个sub _disconnect
which is empty。这是called by sub fatal_disconnect
。如果SFTP请求失败,则由Net :: SFTP fatal_disconnect
is used。但就是这样。没别了。
Perl一旦超出范围,它们就会被Perl清理干净。
{
my $sftp = Net::SFTP->connect; # example
# do stuff...
}
# here it has been cleaned up and DESTROY was called on it
但由于没有代码,所以没有其他事情发生。我找不到告诉SSH注销的代码。也许它只是超时了。我们必须查看服务器日志以了解会发生什么。