Guest wer
my $pty=$test->connect();
 
 
aber ich würde "connect" etwas anders schreiben:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
sub connect{
        my ($self) = @_;
        unless($self->{_pid})
        {
              my $host = $self->{_hostname};
              my %opts        = (
                    user     => $self->{_username},
                    password => $self->{_password},
                    master_opts =>
                        [ -o => "StrictHostKeyChecking false", -o => "HashKnownHosts false" ],
              );
              my $ssh = Net::OpenSSH->new( $host, %opts );
              my ( $pty, $pid ) = $ssh->open2pty();
              $self->{_pid}=$pid;
              $self->{_pty}=$pty;
        }
        return $self->{_pty};
}
 
 
Du willst doch nicht immer wieder eine neue Verbindung aufbauen, oder?
Dann kannst auch in "do_tftp_backup" schreiben:
my $pty=$self->connect;
my $expect = Expect->init($pty);
 
 
ich möchte jedesmal eine neue verbindung aufbauen , da es jedesmal ein anderer host ist.
aber die variante mit 
gefällt mir besser.
gruß Florian