IB2017 has asked for the wisdom of the Perl Monks concerning the following question:
Hello, I am creating an updater for my Tk program on Windows. It simply needs to download an installer and run it. The download part is done by the following subrutine which also updates a progress bar. Is there an easy way to break out of the download (possibily without to rewrite the whole program using threads etc.).
sub doUpdate{ print "doUpdate\n"; my $url = 'https://www.domain.com/download/updater.exe'; my $file = $Path . '/updater.exe'; print "Saving updater in $file\n"; my $ttlDown = 0; my $ua = LWP::UserAgent->new; open my $out, '>:raw', $file or die "$file: $!"; my $resp = $ua->get( $url, ':content_cb' => sub { my ($data, $response) = @_; my $size = $response->content_length; $ttlDown += length $data; $percent_done= $ttlDown * 100.0 / $size; print {$out} $data; $mw->update(); }, ); close $out; print "Out\n"; }
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Break out from download
by kcott (Archbishop) on Apr 09, 2020 at 19:49 UTC | |
by IB2017 (Pilgrim) on Apr 09, 2020 at 20:05 UTC | |
by jcb (Parson) on Apr 10, 2020 at 01:27 UTC | |
by Fletch (Bishop) on Apr 09, 2020 at 23:10 UTC | |
by Anonymous Monk on Apr 09, 2020 at 20:29 UTC |
Back to
Seekers of Perl Wisdom