[Moscow.pm] Net::FTP, FTP Transfer Status, $ftp->hash , фильтрация STDOUT - как получить число вместо решёток?
Evgeniy Kosov
evgeniy на kosov.su
Ср Янв 12 08:02:07 PST 2011
On 12.01.2011 18:21, Dmitry Arsentiev wrote:
>> Мм.. Подсунуть вместо STDOUT свой хэндл, которые считает решётки, вместо
>> того, чтобы их выводить?
>
> Евгений, вот этот код выводит решётки:
> $ftp->hash(\*STDOUT, $BYTES_PER_HASH);
> $ftp->get( $zip_archive_name ) or warn "failed getting
> ftp-archive $zip_archive_name $? $!\n";
> $ftp->quit;
>
> А вот этот код не выводит решётки:
> local *FOO;
> $ftp->hash(\*FOO, $BYTES_PER_HASH);
> print<\*FOO>;
> $ftp->get( $zip_archive_name ) or warn "failed getting
> ftp-archive $zip_archive_name $? $!\n";
> $ftp->quit;
Да, не выводит :)
> Вывод: не всё так просто.
Ещё раз ммм...
package My::ProgressBar;
sub TIEHANDLE {
my $class = shift;
bless {}, $class;
}
sub PRINT {
my $self = shift;
$self->{count} ||= 1;
print 1024 * $self->{count}++ . " bytes received\n"
}
package main;
use Net::FTP;
tie *bar, 'My::ProgressBar';
my $ftp = Net::FTP->new("ftp.microsoft.com", Debug => 0);
$ftp->login("anonymous","-anonymous\@");
$ftp->cwd("MISC");
$ftp->hash(\*bar);
$ftp->get("NBFCP.TXT");
$ftp->quit;
--
С уважением,
Евгений Косов
Подробная информация о списке рассылки Moscow-pm