我试图在循环中执行安装程序,每次都必须启动安装程序。但是一旦循环执行一次,它会抛出以下错误并且脚本停止。有办法阻止这个吗?
my $exp = Expect->new;
my $path="/opt/sample/Installer.pl";
for(my $i=0;$i<$a;$i++){
$exp->spawn($path) or die "Cannot spawn $path: $!\n";
..
..
..
}
错误:
Cannot reuse an object with an already spawned command at Installer.pl line 52
期待文件说:
另请注意,即使该命令已退出,也无法使用已生成的命令重用对象。抱歉,您必须分配一个新对象。
有没有办法解决这个问题。
答案 0 :(得分:2)
发表评论作为答案:
如果你在循环中移动了my $exp = Expect->new;
,也许你的问题就解决了。
这将使您的Expect对象超出每个循环迭代的范围。请注意,我不知道这是否是处理Expect对象的正确方法。