sub foo { my $rc = 0; if (!$ssh->start_session($ssh_host)) { print "ERROR connecting to $ssh_host\n"; $rc = 1; goto end; } my ($ret,$err)=$ssh->execute('command1','expect1'); if ($err || $ret=~/Unknown command:/m) { $rc = 2; goto cleanup; } my ($ret,$err)=$ssh->execute('command2','expect2'); if ($err || $ret=~/Unknown command:/m) { $rc = 3; goto cleanup; } ... cleanup: $ssh->exit_session(); $ssh->close_session; end: return $rc; }