У меня есть Perl-скрипт, который получает некоторые файлы с удаленного сервера, и я хотел бы иметь возможность представлять прогресс. Я пытаюсь это сделать так:
print "\tDownloading comp.reg.binary.sdiff.log...\n";
if(does_file_exist('comp.reg.binary.sdiff.log', @ret)){
$sftp->get("t-gds/log/comp.reg.binary.sdiff.log", $saveDir, sub {
my($sftp, $data, $offset, $size) = @_;
print "\tRead $offset of $size bytes\r";
});
print "\n\tDownloaded.\n";
}else{
print "\tFile not found on server...skipping.\n";
}
Однако Cygwin, похоже, глотает возврат каретки и ничего не печатает до последнего оператора печати. Я сомневаюсь в этом, потому что скрипт работает слишком быстро, потому что когда я изменяю \ r на \ n, я вижу, как они распечатываются медленно.
Кто-нибудь знает, почему он не работает так, как должен?