in reply to Re^5: Losing my mind with Net::OpenSSH and Expect
in thread Losing my mind with Net::OpenSSH and Expect

I don't really want the program to die

Well, you can catch die's wrapping them inside and eval block. Or you can handle errors in a different way, for instance, using the return value from the expect method:

my $r = $expect->expect(2, [ qr/configtest:/ => sub { shift->send("$pass2 +\n"); exp_continue;} ], [ qr/Sorry/ => sub { print "Login failed +\n" } ], [ qr/.*#\s+/ => sub { print shift->match +}] ); if (!defined $r) { print "Timeout!\n"; } elsif ($r == 3) { $expect->interact(); } else { print "Login failed!\n"; }
Regarding the error you get:
Variable "$expect" is not imported at ./test.pl line 28. (Did you mean &expect instead?)
You have some error in your script but without seeing the source code it is difficult to say what! You are probably not declaring the variable $expect in the right scope.

Replies are listed 'Best First'.
Re^7: Losing my mind with Net::OpenSSH and Expect
by rastoboy (Monk) on Mar 03, 2011 at 18:29 UTC
    Thanks, Salva, I appreciate it! I'll get it sorted (the code is just too large and bulky to post). I'll start simple and work my way up :-)
Re^7: Losing my mind with Net::OpenSSH and Expect
by rastoboy (Monk) on Mar 06, 2011 at 18:53 UTC