[Moscow.pm] Net::FTP, FTP Transfer Status, $ftp->hash , фильтрация STDOUT - как получить число вместо решёток?
Dmitry Arsentiev
dmarsentev на gmail.com
Ср Янв 12 04:27:08 PST 2011
> http://www.google.ru/search?hl=ru&q=windows+perl+pipe+fork
>
> А тут есть примерчик того, как можно эмулировать open('-|'):
> http://perldoc.perl.org/perlfork.html
Спасибо, Евгений.
Я попробовал сделать, как там написано.
Действительно, замена -| работает.
Но то, чего я хотел добиться, а именно:
чтобы вместо решёток ##### , выдаваемых методом $ftp->hash ,
получать количество этих решёток (или какое-то пропорциональное
количеству решёток число),
- этого сделать у меня не получилось.
Код, приведённый ниже, работает под WinXP и выдаёт:
parent
count = 1
child
Done
Но если <\*BAR> заменить на getc( \*BAR ) ,
то не печатает Done.
sub pipe_from_fork ($) {
my $parent = shift;
pipe( $parent, my $child ) or die "sub pipe_from_fork - can not
pipe $!\n";
my $pid = fork();
die "fork() failed: $!" unless defined $pid;
if ( $pid ) {
print "parent\n";
close $child;
} else {
print "child\n";
close $parent;
open( STDOUT, ">&=" . fileno($child) ) or die "sub
pipe_from_fork - can not open STDOUT $!\n";
}# fi
$pid;
}#bus pipe_from_fork
local *BAR;
if ( pipe_from_fork( \*BAR ) ){
# parent
my $count = 1;
print "count = $count\n";
while ( <\*BAR> ){
print $BYTES_PER_HASH * $count, " bytes received\n";
$count++;
}# elihw
print "Done\n";
close \*BAR;
}else{ # child
$ftp->hash(\*STDOUT, $BYTES_PER_HASH);
$ftp->get( $zip_archive_name ) or warn "failed getting
ftp-archive $zip_archive_name $? $!\n";
$ftp->quit;
exit(0);
}#fi
11 января 2011 г. 17:44 пользователь Evgeniy Kosov <evgeniy на kosov.su> написал:
> On 11.01.2011 17:21, Dmitry Arsentiev wrote:
>>
>> PS
>> Полный рецепт http://www.perlmonks.org/index.pl?node_id=242130
>> - см. код ниже - не работает, ругается на -| , говорит, что нет такой
>> переменной "-".
>
> http://www.google.ru/search?hl=ru&q=windows+perl+pipe+fork
>
> А тут есть примерчик того, как можно эмулировать open('-|'):
> http://perldoc.perl.org/perlfork.html
>
> --
> С уважением,
> Евгений Косов
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
Подробная информация о списке рассылки Moscow-pm