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:
Regarding the error you get: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"; }
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.Variable "$expect" is not imported at ./test.pl line 28. (Did you mean &expect instead?)
In reply to Re^6: Losing my mind with Net::OpenSSH and Expect
by salva
in thread Losing my mind with Net::OpenSSH and Expect
by rastoboy
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |