sub work () { my $err_flg = 0; $exp->send("command\r"); $exp->expect(5, [ qr/ERROR MESSAGE 1/i, sub { my $self = shift; sleep(1); $err_flg = 1; }], [ qr/ERROR MESSAGE 2/i, sub { my $self = shift; sleep(1); $err_flg = 1; }], [ qr/command prompt/i, sub { my $self = shift; sleep(1); $self->send("command\r"); }] ) or return(1); if ($err_flg == 1) { return(1); } return(0); }