Acme-Hyde
view release on metacpan or search on metacpan
inc/Module/Install/Fetch.pm view on Meta::CPAN
require Cwd;
my $dir = Cwd::getcwd();
chdir $args{local_dir} or return if exists $args{local_dir};
if (eval { require LWP::Simple; 1 }) {
LWP::Simple::mirror($args{url}, $file);
}
elsif (eval { require Net::FTP; 1 }) { eval {
# use Net::FTP to get past firewall
my $ftp = Net::FTP->new($host, Passive => 1, Timeout => 600);
$ftp->login("anonymous", 'anonymous@example.com');
$ftp->cwd($path);
$ftp->binary;
$ftp->get($file) or (warn("$!\n"), return);
$ftp->quit;
} }
elsif (my $ftp = $self->can_run('ftp')) { eval {
# no Net::FTP, fallback to ftp.exe
require FileHandle;
my $fh = FileHandle->new;
local $SIG{CHLD} = 'IGNORE';
unless ($fh->open("|$ftp -n")) {
warn "Couldn't open ftp: $!\n";
chdir $dir; return;
}
my @dialog = split(/\n/, <<"END_FTP");
open $host
user anonymous anonymous\@example.com
cd $path
binary
get $file $file
quit
END_FTP
foreach (@dialog) { $fh->print("$_\n") }
$fh->close;
} }
else {
warn "No working 'ftp' program available!\n";
chdir $dir; return;
}
unless (-f $file) {
warn "Fetching failed: $@\n";
chdir $dir; return;
inc/Test/Builder.pm view on Meta::CPAN
sub _new_fh {
my($file_or_fh) = shift;
my $fh;
if( _is_fh($file_or_fh) ) {
$fh = $file_or_fh;
}
else {
$fh = do { local *FH };
open $fh, ">$file_or_fh" or
die "Can't open test output log $file_or_fh: $!";
_autoflush($fh);
}
return $fh;
}
sub _is_fh {
my $maybe_fh = shift;
return 0 unless defined $maybe_fh;
lib/Acme/Hyde.pm view on Meta::CPAN
=head1 DESCRIPTION
Hyde Calculator
=head1 BUGS AND LIMITATIONS
=head1 SEE ALSO
http://kumaniki.blog76.fc2.com/blog-entry-161.html
=head1 AUTHOR
Tetsunari Nozaki C<< <nozzzzz __at__ gmail.com> >>
=head1 LICENCE AND COPYRIGHT
Copyright (c) 2007, Tetsunari Nozaki C<< <nozzzzz __at__ gmail.com> >>. All rights reserved.
This module is free software; you can redistribute it and/or
( run in 1.203 second using v1.01-cache-2.11-cpan-49f99fa48dc )