#!/usr/bin/perl -w use strict; use warnings; use Tk; use Tk::ProgressBar; my $percent_done = 0; my $mw = new MainWindow(-title => 'Progress Bar Demo'); my $top = $mw->Frame()->pack(-expand => 1, -fill => 'both'); my $pb = $top->ProgressBar( -width => 20, -height => 200, -from => 0, -to => 100, -blocks => 10, -colors => [0, 'green', 50, 'yellow', 80, 'red'], -variable => \$percent_done ); $pb->pack(); $mw->after(100 => \&main_loop); MainLoop; sub main_loop { for (my $i = 0; $i < 100; $i++) { $percent_done = $i; $mw->update(); select(undef, undef, undef, 0.1); } }