while($perform_step > 0) { if ($tcp_transx_param{$row_ref->[$i]}{$perform_step}) { logtext "Value of step is $perform_step"; logtext "Sending =>$tcp_transx_param{$row_ref->[$i]}{$perform_step}{send}<="; $session->send("$tcp_transx_param{$row_ref->[$i]}{$perform_step}{send}\r"); $session->expect($expect_timeout, '-re', "$tcp_transx_param{$row_ref->[$i]}{$perform_step}{expect}") || warn "Did not match at step $perform_step for CollectionID $row_ref->[$i]" . $session -> exp_error(); logtext "Expecting =>$tcp_transx_param{$row_ref->[$i]}{$perform_step}{expect}<="; if ($session->exp_error()) { logtext "ERROR=>" . $session->exp_error(); logtext "Closing Session"; $session->hard_close(); last; } else { $perform_step++; } } else { $perform_step=0; $session->soft_close(); last; } logtext "Increasing my step to $perform_step"; }