尝试访问Net::SSH::Expect内部的Expect对象给出错误



Perl:试图访问Net内的Expect对象::SSH::Expect给出错误。

伪代码示例:

my $m = Net::SSH::Expect->new(
host        => 192.168.1.6,
user        => 'root',
password    => 'password',
timeout     => 10,
raw_pty     => 1,
log_file    => '/tmp/net_ssh_expect_output.txt',
);
$m->login();
$m->expect->log_file();
这会抛出错误:expect():

ERROR:如果直接调用(不是作为$obj->expect(…),而是作为expect::expect(…)),第一个参数必须是'-i'来设置一个对象(列表)供模式工作。在(eval 99)[/usr/share/perl/5.18/perl5db.pl:732]第2行

我应该如何调用log_file()来抓取文件句柄并避免该错误消息?

下面是抛出错误的源代码:PM第492行

我期望(呵呵呵呵)得到日志文件的文件句柄。看起来我把它叫做$obj->expect(),但是它抛出了那个错误。我可能遗漏了一些基本的东西。

我该如何调用log_file()来抓取文件句柄并避免该错误消息?

有一个特定的方法get_expect()可用于获取内部Expect对象,您可以这样使用它:

my $logfile_handle = $m->get_expect()->log_file();
say {$logfile_handle} "Testing...";

最新更新