in reply to Net::FTP output to array
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
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Net::FTP output to array
by packetstormer (Monk) on Aug 18, 2011 at 10:39 UTC | |
|
Re^2: Net::FTP output to array
by packetstormer (Monk) on Aug 18, 2011 at 09:45 UTC |