首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在perl中模拟Expect::expect()函数

如何在perl中模拟Expect::expect()函数
EN

Stack Overflow用户
提问于 2014-11-12 16:26:29
回答 1查看 125关注 0票数 2

我在模拟一段涉及perl中的Expect::expect函数的代码时被卡住了

它是这样的:

代码语言:javascript
复制
my $result = 0;
my $exp = new Expect;
$exp->raw_pty(1);
$exp->log_stdout(0);
$exp->spawn("$some_command");

$exp->expect(undef,
    [ qr/some text/i,
        sub { my $self = shift;
            $self->send("$a_param\n");
            exp_continue;
        } ],
    [ qr/more text/,
        sub { my $self = shift;
            $self->send("$another_param");
            sleep 5;
            exp_continue;
        } ],
    [ qr/some more text/ ,
        sub { my $self = shift;
            $ld_info = "$something";
            $self->clear_accum();
            $self->send($ld_info);
            sleep 5;
            exp_continue;
        } ],

    [ qr/further more text/,
        sub { my $self = shift;
            $result = 1;
        } ],
);
return $result;}

$result的值是最终的返回值。在模拟时,我打算将result的值设置为1,而不实际运行命令,然后尝试匹配模式。有没有办法做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2014-11-14 00:47:02

您可以通过使用

代码语言:javascript
复制
local *

实现将代码替换为您自己的代码。这实际上取决于函数是如何调用的,但我认为你可以这样做:

代码语言:javascript
复制
local *Expect::expect = sub
{
    return 1;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26882329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档