The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# TITLE: progress bar updating
# REQUIRES: Gtk

use Gtk;

init Gtk;

$w = new Gtk::Window;
$pbar = new Gtk::ProgressBar;
$vb = new Gtk::VBox(0, 0);
$b = new Gtk::Button('Quit');
$w->add($vb);
$vb->add($pbar);
$vb->add($b);

$b->signal_connect('clicked', sub {Gtk->exit(0)});
$w->signal_connect('destroy', sub {Gtk->exit(0)});

$w->show_all();
$i = 0;
$pbar->update($i);
Gtk->idle_add(sub {
	$i += 0.01;
	$pbar->update($i);
	while (Gtk->events_pending) {
		Gtk->main_iteration;
	}
	sleep(1);
	return 1;
});
Gtk->main;