Из вашего кода кажется, что у вас есть * nix. Использование модуля Perl Net :: SSH :: Perl делает его более простым
Пример кода:
#!/usr/bin/perl -w
use strict;
use Net::SSH::Perl
my $cmd = 'command';
my $ssh = Net::SSH::Perl->new("hostname", debug=>0);
$ssh->login("username","password");
my ($stdout,$stderr,$exit) = $ssh->cmd("$cmd");
print $stdout;
и пример кода для Net :: Telnet
use Net::Telnet ();
my $t = new Net::Telnet (Timeout => 10,
Prompt => '/bash\$ $/');
$t->open("sparky");
$t->login($username, $passwd);
my @lines = $t->cmd("who");
print @lines;
Вы можете посмотреть другие примеры для Net Telnet Примеры