Probably one of the many die()'s triggered? You could wrap the call to upload_file() with an eval block: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,$fil +e_to_upload,$os); }; if ($@) { # catched an exception $ftp_message = "Error: $@"; ... } else { ... }
Update: Oops, misread the question (but you still need to handle exceptions).
One possibility is to hook into the Net::Cmd::debug_print() method, which performs sending the debug messages to STDERR:
{ # 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
In reply to Re: Net::FTP output to array
by Perlbotics
in thread Net::FTP output to array
by packetstormer
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |