POE::Component::SmokeBox::Recent::FTP - an extremely minimal FTP client
version 1.54
# Obtain the RECENT file from a given CPAN mirror. use strict; use warnings; use File::Spec; use POE qw(Component::SmokeBox::Recent::FTP); my $site = shift || die "You must provide a site parameter\n"; my $path = shift || '/'; POE::Session->create( package_states => [ main => [qw(_start ftp_sockerr ftp_error ftp_data ftp_done)], ] ); $poe_kernel->run(); exit 0; sub _start { POE::Component::SmokeBox::Recent::FTP->spawn( address => $site, path => File::Spec::Unix->catfile( $path, 'RECENT' ) ); return; } sub ftp_sockerr { warn join ' ', @_[ARG0..$#_]; return; } sub ftp_error { warn "Error: '" . $_[ARG0] . "'\n"; return; } sub ftp_data { print $_[ARG0], "\n"; return; } sub ftp_done { warn "Transfer complete\n"; return; }
POE::Component::SmokeBox::Recent::FTP is the small helper module used by POE::Component::SmokeBox::Recent to do FTP client duties.
It only implements an ascii type passive FTP RETR.
RETR
spawn
Takes a number of parameters:
'address', the hostname/address of the FTP site to connect to, mandatory; 'path', the path to the file you want to retrieve from the site, mandatory; 'session', optional if the poco is spawned from within another session; 'prefix', specify an event prefix other than the default of 'ftp';
The component sends the following events. If you have changed the prefixi option in spawn then substitute ftp with the event prefix that you specified.
prefixi
ftp
ftp_sockerr
Generated if there is a problem connecting to the given FTP host/address. ARG0 contains the name of the operation that failed. ARG1 and ARG2 hold numeric and string values for $!, respectively.
ARG0
ARG1
ARG2
$!
ftp_error
Generated if there is an FTP error. ARG0 contains the error sent by the server.
ftp_data
One of these events will be emitted for each line of file you have specified to be retrieved. ARG0 contains that line.
ftp_done
Emitted when the transfer has finished.
Chris Williams <chris@bingosnet.co.uk>
This software is copyright (c) 2020 by Chris Williams.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install POE::Component::SmokeBox::Recent, copy and paste the appropriate command in to your terminal.
cpanm
cpanm POE::Component::SmokeBox::Recent
CPAN shell
perl -MCPAN -e shell install POE::Component::SmokeBox::Recent
For more information on module installation, please visit the detailed CPAN module installation guide.