#!/usr/bin/perl use strict; use warnings; use Carp; use Data::Dumper; use Net::hostent; #use Net::Ping; use Net::FTP::Recursive; my %params = ( site => "ftp.dell.com", dir => "Browse_For_Drivers/Servers, Storage & Networking/PowerEdge", ); FTPConnect (\%params); sub FTPConnect { my $ref_params = shift @_; my $retval = ""; my $ftp = Net::FTP::Recursive->new($ref_params->{site}, Debug => 1, Timeout => 15); if ($ftp) { $retval = "OK: connected via FTP to " . $ref_params->{site} . "\n\n" ; $ftp->login("anonymous",'me@here.there'); $ftp->binary; $ftp->cwd($ref_params->{dir}); #$ftp->rget( ParseSub => \&GetFiles($ftp), $ftp->rget( ParseSub => \&GetFiles, FlattenTree => 1, #MatchDirs => qr/PowerEdge (R810|R610|R720|R620|M620|M1000E)/, #MatchFiles => qr/\.txt/, ); $ftp->quit; } else { $retval = "ERROR: FTP for host $ref_params->{site}\n\n" } return $retval; } sub GetFiles { #my $my_ftp = shift @_; #$my_ftp->get("*.txt"); return; } #### Net::FTP::Recursive=GLOB(0xa4bee8)<<< 250 CWD command successful. Net::FTP::Recursive=GLOB(0xa4bee8)>>> PWD Net::FTP::Recursive=GLOB(0xa4bee8)<<< 257 "/Browse_For_Drivers/Servers, Storage & Networking/PowerEdge" is current directory. Net::FTP::Recursive=GLOB(0xa4bee8)>>> PASV Net::FTP::Recursive=GLOB(0xa4bee8)<<< 227 Entering Passive Mode (143,166,147,12,231,73) Net::FTP::Recursive=GLOB(0xa4bee8)>>> LIST Net::FTP::Recursive=GLOB(0xa4bee8)<<< 150 Opening BINARY mode data connection. Net::FTP::Recursive=GLOB(0xa4bee8)<<< 226 Transfer complete. drwxrwxrwx 1 owner group 0 Aug 29 2012 Dell KVM 1081AD drwxrwxrwx 1 owner group 0 Sep 25 2012 Dell KVM 1082DS ... Net::FTP::Recursive=GLOB(0xa4bee8)>>> PWD Net::FTP::Recursive=GLOB(0xa4bee8)<<< 257 "/Browse_For_Drivers/Servers, Storage & Networking/PowerEdge" is current directory. Net::FTP::Recursive=GLOB(0xa4bee8)>>> QUIT Net::FTP::Recursive=GLOB(0xa4bee8)<<< 221 Thank you for using the Dell FTP site, please come again. #### Net::FTP::Recursive=GLOB(0x1054fa8)<<< 250 CWD command successful. Net::FTP::Recursive=GLOB(0x1054fa8)>>> PASV Net::FTP::Recursive=GLOB(0x1054fa8)<<< 227 Entering Passive Mode (143,166,135,12,255,118) Net::FTP::Recursive=GLOB(0x1054fa8)>>> RETR *.txt Can't use an undefined value as a symbol reference at /usr/share/perl5/Net/FTP/dataconn.pm line 54.