sub updateprogress { my ($self) = @_; return unless $self->progressbar; my @frac = ($self->recordi, $self->recordcount); my $frac = frac(@frac); $self->progressbar->set_fraction($frac->num); $self->progressbar->set_text( sprintf '%d / %d', @frac); use Gtk2; while (Gtk2->events_pending) { Gtk2->main_iteration; } Gtk2::Gdk->flush; }