次のループは、出力 IF を生成しません。最後の exp->expect(5) 行 (一種のスリープ) がありません。これは、「送信済み」コマンドが終了するにはループが「速すぎる」ために実行されているためだと思います。前のコマンドが終了したときにのみ次のコマンドが実行されるようにするにはどうすればよいですか? ログファイルに出力を収集しています。
アドバイス、pl。
タイ。
use Expect;
...
...
foreach my $cmd (@cmd_array){
$exp->expect(3,
[ qr/($|#)/ => sub { shift->send("$cmd");}]
);
exp->expect(5);
}