Acme::RemoteINC - Slowest Possible Module Loading
For your SlowCGI pleasure, loads perl modules via FTP from remote sites. Please don thick rubber gloves and consider version and binary XS module compatibility before using. Requires Perl 5.8 or greater.
Who do you want to kid today? A paranoid ISP admin who won't let you load your favorite CPAN module on his system? Yourself, for considering this as a valid solution to a social problem like that one?
use strict; use warnings; BEGIN { require Acme::RemoteINC; my $rinc = new Acme::RemoteINC( host => 'ftp.esoteric-perl.com', user => 'anonymous', password => 'pwd@myhost.com', perl_root => '/usr/lib/perl5/site_perl/5.8.1' ); } use DBI; # load local DBI by default use DBD::Esoterica; # if cannot load locally, will try the FTP method ...etc.
my $rinc = new Acme::RemoteINC( host => 'ftp.myserver.com', user => 'anonymous', password => 'pwd@myhost.com', perl_root => [ '/usr/lib/perl5/site_perl', /usr/lib_site_perl/5.8.1 ] ); or my $ftp = new Net::FTP; ... my $rinc = Acme::RemoteINC->new(ftp => $ftp);
The new method creates a new Acme::RemoteINC object. Three paired hash entry named arguments are required for new:
host => $hostname
The name of the ftp server.
user => $loginname
Login user name.
password => $pwd
Login password.
Two paired hash entry named arguments are optional arguments for new:
perl_root => $wdir
Perl module directory name relative to the FTP service root. Defaults to the default ftp service's base working directory. Alternative: may be a reference to an array of such module directories.
ftp => $ftp
When given as an argument, this overrides use of the otherwise required arguments. ftp is then expected to be a Net::FTP object which has already been logged in.
NOTE: It is advisable that the call to new be done in a BEGIN block. It is also advisable to load Acme::RemoteINC via require in the BEGIN block.
This internal method is used by the use and require directives after the reference to the Acme::RemoteINC object has been placed in @INC. For details, see the perlfunc docs for require.
This code is beyond bugs. Here there be monsters. The entire concept of loading modules via hooks to Net::FTP may well be fatally flawed. Enjoy :).
William Herrera (wherrera@skylightview.com)
Rude noises, questions, feature requests, rolling eye movements, and inquiries regarding the mental state required to upload code this slow are referred to the Acme, Incorporated Perl suggestion box (thanks@dev.null).
Copyright (C) 2004 William Hererra. All Rights Reserved. This module is free software; you can redistribute it and/or mutilate it under the same terms as Perl itself.
To install Acme::RemoteINC, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Acme::RemoteINC
CPAN shell
perl -MCPAN -e shell install Acme::RemoteINC
For more information on module installation, please visit the detailed CPAN module installation guide.