使用 Net::SFTP 时如何注销

the*_*ber 5 perl

我正在尝试开始使用Net::SFTP,但我无法在其文档或 的文档中找到Net::SSH::Perl我们应该如何注销 SFTP 服务器。

我错过了什么?

注销是否由垃圾控制处理?

sim*_*que 5

你不能。

我查看了Net::SFTP和 Net::SSH::Perl的源代码。它们都没有DESTROY方法,因此没有进行明确的清理。也没有disconnectquit或类似的。

Net::SSH::Perl 有一个sub _disconnect是空的。它由 调用sub fatal_disconnectfatal_disconnect使用的情况下,由Net :: SFTP的SFTP请求失败。但就是这样。没有其他的。

对象一旦超出范围,就会被 Perl 清理掉。

{
    my $sftp = Net::SFTP->connect; # example
    # do stuff...
}

# here it has been cleaned up and DESTROY was called on it
Run Code Online (Sandbox Code Playgroud)

但是因为没有代码,所以没有其他事情发生。我找不到告诉 SSH 注销的代码。也许它只是超时。我们将不得不查看服务器日志以了解会发生什么。