my $ssh = Net::OpenSSH->new($hostname, user => $user, password => $password); my ($socket, $pid) = $ssh->open_tunnel($ip_address, 23); my $telnet = Net::Telnet->new(-fhopen => $socket, ...); $telnet->waitfor(...); ...