my $ftp = Net::FTP->new($_[0], Debug => 1) or die "Cannot connect to $_[0]";
$ftp->login($_[1],$_[2]) or die $login_failed_message;
...
$ftp->put($_[3]) or die "get failed ", $ftp->message;
####
my $ftp_message = 'n/a';
eval {
$ftp_message = upload_file($server_ip,$server_user,$server_pass,$file_to_upload,$os);
};
if ($@) { # catched an exception
$ftp_message = "Error: $@";
...
} else {
...
}
####
{ # temporarily change Net::Cmd::debug_print
my $log_buffer;
local *Net::Cmd::debug_print = sub {
my ($self, $dir, $text) = @_;
$log_buffer .= ($dir ? 'snd --> ' : 'rcv <-- ') . $text;
};
my $ftp = Net::FTP->new($_[0], Debug => 1) or die "Cannot connect to $_[0]";
...
$ftp->quit;
print "Log:\n$log_buffer\n";
} # recovers previous behaviour of Net::Cmd::debug_print