I don't know what you mean by "non-pragmatic;" maybe it's a jargon term. It's certainly useful to me, and I have the ftp stuff stuffed away in modules, where I keep the functioning part and the data part separated. I've renamed the package "scrubber1" now, which is more descriptive:
package scrubber1;
require Exporter;
use config1;
our @ISA = qw(Exporter);
our @EXPORT = qw(
get_ftp_object
get_html_filenames
kill_files
);
sub get_ftp_object {
use strict;
use Net::FTP;
use 5.010;
my $sub_hash = "my_ftp";
my $domain = $config{$sub_hash}->{'domain'};
my $username = $config{$sub_hash}->{'username'};
my $password = $config{$sub_hash}->{'password'};
#dial up the server
my $ftp = Net::FTP->new( $domain, Debug => 1, Passive => 1 )
or die "Can't connect: $!\n";
$ftp->login( $username, $password )
or die "Couldn't login\n";
return $ftp;
}
The values for config lie in config1, and these need to be redacted to show:
package config1;
use Exporter qw(import);
our @EXPORT = qw(%config);
our %config = (
my_ftp => {
domain => 'redacted',
username => 'redacted',
password => 'redacted',
},
);
1;
I'm not sure how "just-in-time" compilation works for such a scheme, but from my perspective, it happens really quickly.
|